greendao2性能上一直是android orm中最好的一个。但是前期使用方面一直有点难上手。
现在更新greendao3后,已经十分方便的使用了!
该连接包含简单使用,数据库升级封装,已经很全面了
https://github.com/jp1017/GreenDAO3_Demo
然后我再补充一下上面网址没提及的注解:
1. 注解
注解
分为4种:
1.@Entity注解
2.基本属性注解
3.索引注解
4.关系注解
1.1@Entity注解
@Entity(
// 如果该实体属于多个表单,可以使用该参数;
// schema = "myschema",
// 标记一个实体是否处于活动状态,活动实体有 update、delete、refresh 方法。默认为 false
active = false,
// 表名,默认为类名
nameInDb = "AWESOME_USERS",
// 可以给多个属性定义索引和其他属性.
indexes = {
@Index(value = "name DESC", unique = true)
},
// 标记是否创建表,默认 true。多实体对应一个表或者表已创建,不需要 greenDAO 创建时设置 false
createInDb = true,
// 是否产生所有参数构造器。默认为 true。无参构造器必定产生
generateConstructors = true,
// 如果没有 get/set 方法,是否生成。默认为 true
generateGettersSetters = true
)
1.2基本属性注解
-
@ID
主键 long 型,可以通过@Id(autoincrement = true)设置自增长。
-
@Property
可以自定义一个该属性在数据库中的名称,默认情况下数据库中该属性名称是Bean对象中的 属性名但是不是以驼峰式而是以大写与下划线组合形式来命名的比如:customName将命名为 CUSTOM_NAME;注意:外键不能使用该属性;
-
@NotNull
设置数据库表当前列不能为空
-
@Transient
使用该注释的属性不会被存入数据库中;
1.3索引注解
-
@Index
为一个属性来创建一个索引(即在这个属性对应的列名上创建索引),通过name设置索引别名,也可以通过unique给索引添加约束,有name和unique两个参数,name可以为索引指定名称,unique与数据表中建立索引的unique
含义一致
-
@Unique
向数据库添加了一个唯一的约束
1.4关系注解
-
@ToOne
定义与另一个实体(一个实体对象)的关系1:1
-
@ToMany
定义与多个实体对象的关系1:N
2.greendao2升级greendao3
2.1
把实体类的有关构造方法,get.set方法,反正是有关greendao2生成的,全部删掉,再重新生成即可。
2.2
sqlitedatabase 替换成database
网友评论