GreenDao_2_介绍

项目中需要使用到GreenDao,于是将官方文档看了一遍,留了一个翻译。由于非常关心该数据库的新能表现,因此写了一个性能测试demo,也放到了github上

Posted by chchaooo on February 6, 2018

介绍

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.DevOpenHelperthis,“notes-db”,null;
db = helper.getWritableDatabase();
daoMaster = new DaoMasterdb;
daoSession = daoMaster.newSession();
// 在您的Activity/fragment中执行此操作以获取DAO
noteDao = daoSession.getNoteDao();

该示例假设存在一个Note实体。 有了它的DAO(noteDao对象),我们可以调用这个特定实体的持久化操作。