一、greenDao 配置:
(一)project :build. gradle
在project 的build.gradle 配置greendao 3.x.x的插件
classpath ‘org.greenrobot:greendao-gradle-plugin:3.1.1’
(二)module:build.gradle
1.顶部配置 greendao 的apply plugin:
apply plugin: ‘org.greenrobot.greendao’
2. 配置greendao的信息
schemaVersion:数据库版本号
daoPackage:greendao生成代码的位置
targetGenDir:目标根dir
3.配置greendao 依赖包
dependencies {
compile ‘org.greenrobot:greendao:3.1.1’
}
二、greenDao 项目构建
(一) make project
1. greendao配置完成之后,make project 项目
在build.gradle中配置的XXX.greendao.gen(XXX表示你要生成的目标文件路径)的包下会生成 DaoMaster 和DaoSession
2.创建 greendao 管理及帮助类
DaoConfig:参数克隆
GreenDaoManager:greendao 管理类,负责创建数据库,生成DaoMaster,DaoSession 对象,同时提供对外的获取DaoMaster,DaoSession getxx() 方法 ,实现单例模式
MigrationHelper:数据库升级
MySQLiteOpenHelper:数据库升级帮助类
3.在BaseApplication 项目入口时调用数据库管理类,生成数据库,及DaoMaster,DaoSession 对象

(二) 项目开发
  greendao 3.x.x 通过javabean 生成对应的数据库操作类,每一个javabean 对应一个数据库操作类,包括表的创建,删除等

1.javabean 编写规则
    必须在类前@Entity  
    @Id :javabean的ID 会映射到表中的id
    autoincrement = true:设置id自增长
    @NotNull:不能为空

注意事项:
1.在javabean中id 的类型用Long类型,long不能自增,在插入时因为存在相同id的数据,所以不能插入数据。
2.编写完其他的属性之后,不要自己写setter和getter方法,这个时候需要make project
make project 之后,会在XXX.greendao.gen 包下生产对应的数据库操作Dao
如:CityRecord 自动生成 CityRecordDao
三、greenDao数据库的操作
使用自动生成的xxDao就可以进行数据库的操作了。
由于greenDao的DaoSession 统一管理xxDao,因此要获取某个xxDao,通过DaoSession获取
如:
greenDao目的是开发者不使用sql语句,即可轻松操作数据库
(一)数据库操作包括:增删改查
以下是简单介绍
查询全部:xxDao.quer.loadAll();
xxDao. queryBuilder().list()
某条件查询:xxDao. queryBuilder().where(xxDao. Properties.yy.eq(mm)).list()
xxDao. queryBuilder().where(xxDao. Properties.yy. notEq (mm)).list()
xxDao. queryBuilder().where(xxDao. Properties.yy. like (mm)).list()
where :条件,条件可以写多个。
whereor:or条件
降序升序:queryBuilder() 后面orderAsc(xxDao. Properties.yy)
orderDesc(xxDao. Properties.yy)
删除:
xxDao.deleteAll()
xxDao.delete(obj)
xxDao. deleteByKey(key)
插入:xxDao.insert(obj)
更新:xxDao.update(obj)
四、greenDao数据库的升级
(一)配置
1.数据升级是通过配置 module: build.gradle 下的schemaVersion 版本号 需要大于上一个版本
2.在MySQLiteOpenHelper :数据库升级帮助类的
//数据库升级:在已有表中增加新字段的时候,需要升级,添加表,需要升级。
@Override
注意事项:
(1).何时升级:在已有表中增加新字段的时候,需要升级,添加表,需要升级。
(2). 数据库升级,如果包含新建的表,则需要先创建一下才可以进行升级,DaoMaster.createAllTables(db, true); true 代表:如果存在就不创建
(3). 新建的表需要,在MigrationHelper.migrate()的添加xxxDao.class
3. MigrationHelper 数据库升级具体类。
数据据升级的原理是:
(1).根据原数据库表创建临时表,同时数据也放入临时表
(2).删除原数据表
(3).创建新的数据库表
(4).把临时表中的数据,导入到新的数据表中