1、GreenDao 介绍:
- greenDAO是一个对象关系映射(ORM)的框架,能够提供一个接口通过操作对象的方式去操作关系型数据库,它能够让你操作数据库时更简单、更方便。如下图所示:
2、GreenDao 优点:
性能高,号称Android最快的关系型数据库
-
内存占用小
- 库文件比较小,小于100K,编译时间低,而且可以避免65K方法限制
支持数据库加密 greendao支持SQLCipher进行数据库加密 有关SQLCipher可以参考这篇博客Android数据存储之Sqlite采用SQLCipher数据库加密实战
简洁易用的API
3、在build.grade中配置插件信息并引入依赖包
// In your root build.gradle file: 设置脚本的运行环境(如果用在app启动模块,直接加3,4步,在lib模块整个需要加进去)
buildscript {
repositories {
jcenter()
mavenCentral() // add repository 支持java 依赖库管理(maven/ivy),用于项目的依赖。
}
dependencies {
classpath 'com.android.tools.build:gradle:2.3.3'
classpath 'org.greenrobot:greendao-gradle-plugin:3.2.2' // add plugin 依赖包的定义。支持maven/ivy,远程,本地库,也支持单文件
}
}
// In your app projects build.gradle file:
apply plugin: 'com.android.application'
apply plugin: 'org.greenrobot.greendao' // apply plugin 声明添加的插件类型
dependencies {
compile 'org.greenrobot:greendao:3.2.2' // add library
}
//自定义Greendao版本和生成路径
greendao {
//数据库版本号,数据库修改后这里一定要记得修改,否则会报错no such table
schemaVersion 1
//通过gradle插件生成的数据库相关文件的包名,默认为你的entity所在的包名
daoPackage ''com.example.kenvin.greendaodemo.gen''
//这就是我们上面说到的自定义生成数据库文件的目录了,可以将生成的文件放到我们的java目录中
,而不是build中,这样就不用额外的设置资源目录了
targetGenDir 'src/main/java'
}
具体截图如下:
4 、创建一个实体类,实体类添加@Entity注解
5、build(Build->Make Project)项目
-
会自动生成一些数据库相关类,这些类在build.gradle里设置的目录下,而且实体类里面也会自动生成get/set方法
DaoMaster:使用greenDAO的切入点。DaoMaster保存数据库对象(SQLiteDatabase)并管理特定模式的DAO类(而不是对象)。 它具有静态方法来创建表或将它们删除。 其内部类OpenHelper和DevOpenHelper是在SQLite数据库中创建模式的SQLiteOpenHelper实现。一个DaoMaster就代表着一个数据库的连接。
DaoSession:管理特定模式的所有可用DAO对象,您可以使用其中一个getter方法获取。 DaoSession还为实体提供了一些通用的持久性方法,如插入,加载,更新,刷新和删除。 DaoSession可以让我们使用一些Entity的基本操作和获取Dao操作类,DaoSession可以创建多个,每一个都是属于同一个数据库连接的。
XxxDAO:数据访问对象(DAO)持续存在并查询实体。 对于每个实体,GreenDAO生成一个DAO。 它比DaoSession有更多的持久化方法,例如:count,loadAll和insertInTx。
6、greenDao的简单使用
- 1、创建数据库管理类
使用单例模式
-
2、获取可读数据库
-
3、获取可写数据库
-
4、插入一条记录
-5 、插入用户集合
-
6、删除一条记录
-7、更新一条记录
-8、查询用户列表
7、 数据库版本升级
在这里修改数据库版本号