图片.png
greenDAO是Android的对象/关系映射(ORM)工具。它为关系数据库SQLite提供了面向对象的接口。像greenDAO这样的ORM工具可以为您完成许多重复性任务,并为您的数据提供简单的接口。
上一篇文章中介绍了GreenDao的基本配置,完成基本配置之后重新编译就会自动生成DAO代码。
以下核心类是greenDAO的基本接口:
图片.png
DaoMaster:
使用greenDAO的切入点。 DaoMaster保存数据库对象(SQLiteDatabase)并管理特定模式的DAO类(而不是对象)。它有静态方法来创建表或删除它们。其内部类OpenHelper和DevOpenHelper是SQLiteOpenHelper实现,它们在SQLite数据库中创建模式。
DaoSession:
管理特定模式的所有可用DAO对象,您可以使用其中一个getter方法获取该对象。 DaoSession还提供了一些通用的持久性方法,如实体的插入,加载,更新,刷新和删除。最后,DaoSession对象还跟踪身份范围。
DAOs:
数据访问对象(DAO)持久存在并查询实体。对于每个实体,greenDAO生成DAO。它具有比DaoSession更多的持久性方法,例如:count,loadAll和insertInTx。
实体:
可持久的对象。通常,实体是使用标准Java属性(如POJO或JavaBean)表示数据库行的对象。
初始化数据库代码如下:
DaoMaster.DevOpenHelper helper = new DaoMaster.DevOpenHelper(this, "demo.db", null);
SQLiteDatabase db = helper.getWritableDatabase();
DaoMaster daoMaster = new DaoMaster(db);
DaoSession daoSession = daoMaster.newSession();
StudentDao studentDao = daoSession.getStudentDao();
如果该数据库结合sqlcipher
对数据库加密,初始化数据库如下:
DaoMaster.DevOpenHelper helper = new DaoMaster.DevOpenHelper(this, "notes-db-encrypted.db");
Database db = helper.getEncryptedWritableDb("<your-secret-password>");
DaoSession daoSession = new DaoMaster(db).newSession();
StudentDao studentDao = daoSession.getStudentDao();
[本章完...]