Android mvvm 架构难以理解流程



我正在学习如何在 android 中实现 MVVM 架构,但我很难理解流程。我不明白dao类是如何连接到数据库类的,以及如何将模型类中的POJO添加到数据库中。

这是我所理解的。

  1. Model class: 它是一个保存文件夹结构的 POJO 类。

  2. Dao它保存了需要在数据库上执行的所有 CRUD 操作,并附加了一个方法,通过该方法可以调用它们。

  3. Database class它扩展了房间数据库并创建并返回数据库实例。它还包含一个返回 Dao 的抽象方法。

这是我的代码(我实际上有更多,但我只提供了我缺乏理解的领域):

  1. 模型类

' @Entity

public class InventoryModel {
@PrimaryKey (autoGenerate = true)
public int id;
private String itemName;
private int itemQuantity;
private double itemPrice;
public InventoryModel(String itemName, int itemQuantity, double itemPrice){
this.itemName = itemName;
this.itemQuantity = itemQuantity;
this.itemPrice = itemPrice;
}

2.道

@Dao
public interface InventoryModelDao {
@Query("SELECT * FROM InventoryModel")
LiveData<List<InventoryModel>> getAllInventoryItems();
@Insert(onConflict = OnConflictStrategy.ABORT)
void addItem(InventoryModel inventoryModel);
@Delete
void deleteItem(InventoryModel inventoryModel);
}

3.数据库类(我只包含抽象方法,排除的部分返回数据库的实例)

public abstract InventoryModelDao inventoryModelDao();

Dao究竟如何连接到database

当我们指定诸如@Delete@Insert@Query操作之类的操作时,数据访问对象会在下面为我们生成大量样板代码,并且您永远不会看到这些生成的代码,但是在内部,这些方法被转换为在数据库本身上执行的方法。

因此,Dao是通过内部生成的代码在数据库上执行的操作

扩展a_local_nobody的答案。您可以在appbuildgeneratedsourceaptdebugPACKAGEdaoInventoryModelDao_Impl下找到生成的类

相关内容

  • 没有找到相关文章

最新更新