[英]Android mvvm architecture trouble understanding process flow
我正在學習有關在android中實現MVVM架構的知識,但在理解過程流程時遇到了麻煩。 我無法理解dao
類如何與數據庫類連接以及模型類中的POJO
如何添加到數據庫中。
這是我所了解的。
Model class
:這是一個POJO類,其中包含文件夾結構。
Dao
它包含需要在數據庫上執行的所有CRUD操作,並附有一種可以通過它們調用的方法。
Database class
擴展RoomDatabase並創建並返回數據庫實例。 它還擁有一個返回Dao的抽象方法。
這是我的代碼(實際上我有更多,但是我只提供了我不了解的區域):
`@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
@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.Database類(我只包括了abstract方法。排除的部分返回db的實例)
public abstract InventoryModelDao inventoryModelDao();
Dao
到底如何連接到database
?
數據訪問對象為我們產生了很多的樣板代碼的下方時,我們指定的東西,如@Delete
, @Insert
和@Query
操作,你永遠不會看到這個生成的代碼,但內部這些方法被轉換到執行上的方法數據庫本身。
因此, Dao
是通過內部生成的代碼在數據庫上執行的操作
擴展a_local_nobody的答案。 您可以在app\\build\\generated\\source\\apt\\debug\\PACKAGE\\dao\\InventoryModelDao_Impl
下找到生成的類
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.