介绍
greenDAO是Android的对象/关系映射(ORM)工具。 它为关系数据库SQLite提供了一个面向对象的接口。像greenDAO一类的ORM工具为你解决很多重复性的任务,提供简单的数据接口。 这里写图片描述
Gradle插件和DAO代码生成
为了在你的Android项目中使用greenDAO,你需要添加greenDAO Gradle插件并添加greenDAO库:
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'org.greenrobot:greendao-gradle-plugin:3.2.2'
}
}
apply plugin: 'com.android.application'
apply plugin: 'org.greenrobot.greendao'
dependencies {
compile 'org.greenrobot:greendao:3.2.2'
}
然后进行实体建模也就是创建实体,并编译项目,例如在Android Studio中使用“Build> Make Project”。
核心类
一旦项目构建完毕,你就可以在Android项目中开始使用greenDAO了。
以下核心类是greenDAO的基本接口:
DaoMaster
使用greenDAO的切入点。 DaoMaster保存数据库对象(SQLiteDatabase)并管理特定模式的DAO类(而不是对象)。 它有静态方法来创建表或删除它们。 它的内部类OpenHelper和DevOpenHelper都是SQLiteOpenHelper的实现,用来在SQLite数据库中创建模式。
DaoSession
管理特定模式的所有可用DAO对象,你可以使用其中一个的getter方法获取DAO对象。 DaoSession还为实体提供了一些通用的持久性方法,如插入,加载,更新,刷新和删除。 最后,DaoSession对象也跟踪identity scope。 有关更多详细信息,请查看会话文档
DAO
数据访问对象(DAO),用于实体的持久化和查询。 对于每个实体,greenDAO会生成一个DAO。 它比DaoSession拥有更多的持久化方法,例如:count,loadAll和insertInTx。
实体
可持久化对象。 通常,实体是使用标准Java属性(如POJO或JavaBean)表示数据库行的对象。
核心初始化
最后,以下代码示例说明了初始化数据库和核心greenDAO类的第一步
// 做一次,例如在你的Application类中
helper = new DaoMaster.DevOpenHelper(this,“notes-db”,null);
db = helper.getWritableDatabase();
daoMaster = new DaoMaster(db);
daoSession = daoMaster.newSession();
// 在您的Activity/fragment中执行此操作以获取DAO
noteDao = daoSession.getNoteDao();
该示例假设存在一个Note实体。 有了它的DAO(noteDao对象),我们可以调用这个特定实体的持久化操作。