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