关于GreenDao

greenDAO 是一个将对象映射到 SQLite 数据库中的轻量且快速的 ORM 解决方案。

greendao数据库升级更新(greendao读取外部数据库)(1)

GreenDao的优势

1.一个精简的库

2.性能最大化

3.内存开销最小化

4.易于使用的 APIs

5.对 Android 进行高度优化

GreenDao 3.0使用

API:

1.)实体@Entity注解

schema:告知GreenDao当前实体属于哪个schema

active:标记一个实体处于活动状态,活动实体有更新、删除和刷新方法

nameInDb:在数据中使用的别名,默认使用的是实体的类名

indexes:定义索引,可以跨越多个列

createInDb:标记创建数据库表**

2.)基础属性注解

@Id :主键 Long型,可以通过@Id(autoincrement = true)设置自增长

@Property:设置一个非默认关系映射所对应的列名,默认是的使用字段名举例:@Property (nameInDb=”name”)

@NotNul:设置数据库表当前列不能为空

@Transient:添加次标记之后不会生成数据库表的列

3.)索引注解

@Index:使用@Index作为一个属性来创建一个索引,通过name设置索引别名,也可以通过unique给索引添加约束

@Unique:向数据库列添加了一个唯一的约束

4.)关系注解

@ToOne:定义与另一个实体(一个实体对象)的关系

@ToMany:定义与多个实体对象的关系

android studio 实际项目中使用

1,配置

在project下的gradle里面添加

greendao数据库升级更新(greendao读取外部数据库)(2)

在app里面添加

greendao数据库升级更新(greendao读取外部数据库)(3)greendao数据库升级更新(greendao读取外部数据库)(4)greendao数据库升级更新(greendao读取外部数据库)(5)

创建一个实体类

这里我只是做个demo 就只配了表面和主键

greendao数据库升级更新(greendao读取外部数据库)(6)

配好了ctrl+F9 编译下当前Module,greedao的插件就会在配置的路径中生成相应的代码,

红线是插件自动生成的,2个没有没有画的,是大神对版本升级时候对数据库的操作。greendao数据库升级更新(greendao读取外部数据库)(7)

在app入口初始化,这里我添加了版本升级的代码。

greendao数据库升级更新(greendao读取外部数据库)(8)

下面这个是不用版本升级的代码,对GreenDao的初始化

greendao数据库升级更新(greendao读取外部数据库)(9)

acitivty代码

greendao数据库升级更新(greendao读取外部数据库)(10)greendao数据库升级更新(greendao读取外部数据库)(11)greendao数据库升级更新(greendao读取外部数据库)(12)

运行结果

插入了5条数据,删除了第一条,更新了第二条。

greendao数据库升级更新(greendao读取外部数据库)(13)

版本升级的时候,注意当字段改了之后,要更改数据库版本号,若没有的改变的话就不用改。

另外数据库版本升级,demo中使用的是别人写的一个,采用的是把原来的数据拷贝一份然后删除,重新创建数据库,再把数据copy回去。

若是没有对数据进行升级相关操作而直接更改数据库版本号的话,数据会在项目更新的时候丢失。