之前我们介绍了数据库realm的使用,今天我们介绍一款ORM框架greenDAO的使用。
首先到查看github地址https://github.com/greenrobot/greenDAO ,根据文档做相应的配置。
Gradle 插件配置
- schemaVersion: 数据库schema版本,也可以理解为数据库版本号
- daoPackage:设置DaoMaster 、DaoSession、Dao包名
- targetGenDir:设置DaoMaster 、DaoSession、Dao目录
- targetGenDirTest:设置生成单元测试目录
- generateTests:设置自动生成单元测试用例
实体@Entity注解
- schema:告知GreenDao当前实体属于哪个schema
- active:标记一个实体处于活动状态,活动实体有更新、删除和刷新方法
- ameInDb:在数据中使用的别名,默认使用的是实体的类名
- indexes:定义索引,可以跨越多个列
- createInDb:是否创建表,如果是有多个实体都关联这个表,可以把多余的实体里面设置为false避免重复创建(默认是true)
基础属性注解
- @Entity:用于标识这是一个需要Greendao帮我们生成代码的bean
- @Id:标明主键,可以通过@Id(autoincrement = true)设置自增长
- @Property:用于设置属性在数据库中的列名(默认不写就是保持一致)
- @NotNull :非空
- @Transient:标识这个字段是自定义的不会创建到数据库表里
- @Convert:指定自定义类型(@linkPropertyConverter)
- @Generated:greenDAO运行所产生的构造函数或者方法,被此标注的代码可以变更或者下次运行时清除
- @Keep:注解的代码段在GreenDao下次运行时保持不变
- OrderBy:指定排序
索引注解
- @Index:使用@Index作为一个属性来创建一个索引,通过name设置索引别名,也可以通过unique给索引添加约束
- @Unique:向数据库列添加了一个唯一的约束
关系注解
|
|
|
|
- @ToOne:一对一
- @ToMany :一对多
- JoinEntity:定义表连接关系,如果你在做多对多的关系,可以给目标属性添加这个额外的注解
- @JoinProperty:定义名称和引用名称属性关系
本期主要介绍greenDAO的注解相关的介绍,下期介绍数据的操作。