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