GreenDao v3.X 入門

新增 GreenDao 庫依賴項和 Gradle 外掛後,我們需要先建立一個實體物件。

實體

實體是普通舊 Java 物件 (POJO)它對資料庫中的某些資料進行建模。GreenDao 將使用此類在 SQLite 資料庫中建立一個表,並自動生成幫助程式類,我們可以使用這些類來訪問和儲存資料,而無需編寫 SQL 語句。

@Entity
public class Users {

    @Id(autoincrement = true)
    private Long id;

    private String firstname;
    private String lastname;

    @Unique
    private String email;

    // Getters and setters for the fields...

}

一次性 GreenDao 設定

每次啟動應用程式時,都需要初始化 GreenDao。GreenDao 建議將此程式碼儲存在 Application 類中,或者只在其中執行一次。

DaoMaster.DevOpenHelper helper = new DaoMaster.DevOpenHelper(this, "mydatabase", null);
db = helper.getWritableDatabase();
DaoMaster daoMaster = new DaoMaster(db);
DaoSession daoSession = daoMaster.newSession();

GreenDao 助手類

建立實體物件後,GreenDao 會自動建立用於與資料庫互動的輔助類。它們的命名方式與建立的實體物件的名稱類似,後跟 Dao,並從 daoSession 物件中檢索。

UsersDao usersDao = daoSession.getUsersDao();

現在可以使用具有實體物件的此 Dao 物件執行許多典型的資料庫操作。

詢問

String email = "jdoe@example.com";
String firstname = "John";

// Single user query WHERE email matches "jdoe@example.com"
Users user = userDao.queryBuilder()
                .where(UsersDao.Properties.Email.eq(email)).build().unique();

// Multiple user query WHERE firstname = "John"
List<Users> user = userDao.queryBuilder()
                .where(UsersDao.Properties.Firstname.eq(firstname)).build().list();

插入

Users newUser = new User("John","Doe","jdoe@example.com");
usersDao.insert(newUser);

更新

// Modify a previously retrieved user object and update
user.setLastname("Dole");
usersDao.update(user);

刪除

// Delete a previously retrieved user object
usersDao.delete(user);