簡體   English   中英

Android mvvm架構麻煩了解流程

[英]Android mvvm architecture trouble understanding process flow

我正在學習有關在android中實現MVVM架構的知識,但在理解過程流程時遇到了麻煩。 我無法理解dao類如何與數據庫類連接以及模型類中的POJO如何添加到數據庫中。

這是我所了解的。

  1. Model class :這是一個POJO類,其中包含文件夾結構。

  2. Dao它包含需要在數據庫上執行的所有CRUD操作,並附有一種可以通過它們調用的方法。

  3. Database class擴展RoomDatabase並創建並返回數據庫實例。 它還擁有一個返回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

@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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM