使用的GreenDao 3.1框架流程
关于导入:
在Project根的build.gradle 中添加
dependencies{
classpath ‘org.greenrobot:greendao-gradle-plugin:3.1.0’
}
添加仓库地址
repositories {
mavenCentral()
}
然后在app的build.gradle中添加依赖
dependencies {
compile ‘org.greenrobot:greendao:3.1.0’
}
注意:在app的build.gradle配置文件中头部一定要添加
apply plugin: ‘org.greenrobot.greendao’
对于数据文件等生成配置,可以在在app的build.gradle中配置
greendao {
schemaVersion 2 //数据库版本
daoPackage ‘com.lsl.greendao.db’ //生成的dao相关文件
targetGenDir ‘src/main/java’ //生成资源目录
}
* schemaVersion: 数据库schema版本,也可以理解为数据库版本号
* daoPackage:设置DaoMaster 、DaoSession、Dao包名
* targetGenDir:设置DaoMaster 、DaoSession、Dao目录
* targetGenDirTest:设置生成单元测试目录
* generateTests:设置自动生成单元测试用例
一些常用的实体注解:
实体@Entity注解
* schema:告知GreenDao当前实体属于哪个schema
* active:标记一个实体处于活动状态,活动实体有更新、删除和刷新方法
* nameInDb:在数据中使用的别名,默认使用的是实体的类名
* indexes:定义索引,可以跨越多个列
* createInDb:标记创建数据库表
基础属性注解
* @Id :主键 long/Long型,可以通过@Id(autoincrement = true)设置自增长
* @Property:设置一个非默认关系映射所对应的列名,默认是的使用字段名 举例:@Property (nameInDb="name")
* @NotNul:设置数据库表当前列不能为空
* @Transient :添加次标记之后不会生成数据库表的列
索引注解
* @Index:使用@Index作为一个属性来创建一个索引,通过name设置索引别名,也可以通过unique给索引添加约束
* @Unique:向数据库列添加了一个唯一的约束
关系注解
* @ToOne:定义与另一个实体(一个实体对象)的关系
* @ToMany:定义与多个实体对象的关系
混淆规则
-keepclassmembers class * extends org.greenrobot.greendao.AbstractDao {
public static java.lang.String TABLENAME;
}
-keep class **$Properties
// If you do not use SQLCipher:
-dontwarn org.greenrobot.greendao.database.**
// If you do not use Rx:
-dontwarn org.greenrobot.greendao.rx.**
使用方式(略),最后开始策马奔腾吧0.0