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);