##greenDao 3的引入
- 导入AS
-
app module下build.gradle
buildscript { dependencies { classpath 'org.greenrobot:greendao-gradle-plugin:3.0.0' } } apply plugin: 'org.greenrobot.greendao' dependencies { compile 'org.greenrobot:greendao:3.0.1' }
也可以在project/build.gradle下添加
buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:2.1.2' classpath 'org.greenrobot:greendao-gradle-plugin:3.0.0' } }
-
###java 类
###注解: @Entity
###可配置的参数:
- schema
- active
设置为active时,那么此entity有update/delete/refresh方法 - nameInDb
指定在数据库中对应的表名称 - indexes:表示在本表下存在多个字段索引
- createInDb
标识,默认为true,如果设置为false,则是指定多个实体对应一个表,或者表被创建在greenDao之外
注解: @Id
选择一个long/Long类型的属性做eneity ID,对应于数据库表中的主键
可配置的参数
- autoincrement
注解: @Property
对应于表中的字段,如果不设置,则默认java类属性对应相同的表字段
注解: @NotNull
使一个属性不为空在数据库表中
注解: @Transient
指定属性不具有持久性,仅仅使用一个暂时的状态
注解: @index
指定一个属性作为索引中的字段
可配置的参数
- name
修改在索引中的字段名,不使用默认的 - unique
使此字段的值唯一
注解: @Unique
给字段一个UNIQUE约束
注解: @ToOne
一对一
可配置的参数
joinProperty
注解: @ToMany
一对多
可配置的参数
- referencedJoinProperty2. joinProperties3. JoinEntity
注解: @Keep
保持不混淆
注意
默认自动生成的DaoMaster、DaoSession等文件在build/generated/source/greendao下,所以在build.gradle下 加上
sourceSets { main { java.srcDirs = ['src/main/java', 'build/generated/source/greendao'] } }
也可以在build.gradle指定生成的位置,其他属性也可以指定
-
schemaVersion 数据库的版本号
-
daoPackage greendao生成的java类存放的包
-
targetGenDir greendao生成的java类存放的位置,具体位置为 此位置+包
-
targetGenDirTest 生成的测试类存放的位置
-
generateTests 是否生成自动测试
以下为示例
greendao {
schemaVersion 1
daoPackage "com.amugua.mvptest.base.greendao"
targetGenDir "src/main/java"
}