项目中需要存储用户的登录信息,用的是原生的数据库。现在闲下来之后就想研究下GreenDao
在我看来GreenDao是一个很完善而且封装的很好的框架了,用起来很简单。
1 添加依赖
①在project的gradle中加入
//GreenDao3依赖 classpath 'org.greenrobot:greendao-gradle-plugin:3.2.1'
②在app的gradle中加入
//使用greendao
apply plugin: 'org.greenrobot.greendao'
//greendao依赖
compile 'org.greenrobot:greendao:3.2.0'
2 bean中加上注释
加上注释之后重新build gradle,会自动生成get set 还有构造方法。 同时也会生成ShopDao类。
Bean对象的注释进行解释
@Entity:告诉GreenDao该对象为实体,只有被@Entity注释的Bean类才能被dao类操作
@Id:对象的Id,使用Long类型作为EntityId,否则会报错。(autoincrement = true)表示主键会自增,如果false就会使用旧值
@Property:可以自定义字段名,注意外键不能使用该属性
@NotNull:属性不能为空
@Transient:使用该注释的属性不会被存入数据库的字段中
@Unique:该属性值必须在数据库中是唯一值
@Generated:编译后自动生成的构造函数、方法等的注释,提示构造函数、方法等不能被修改
3 在application中初始化数据库,bean中生成表格,数据库需要在application中去初始化。
public static DaoSession getDaoInstant() { return daoSession; }
运行项目后数据库就会生成啦,接下来就是常规的增删改查
GreenDao中Dao对象其他API的介绍
增加单个数据
getShopDao().insert(shop);
getShopDao().insertOrReplace(shop);
增加多个数据
getShopDao().insertInTx(shopList);
getShopDao().insertOrReplaceInTx(shopList);
查询全部
List< Shop> list = getShopDao().loadAll();
List< Shop> list = getShopDao().queryBuilder().list();
查询附加单个条件
.where()
.whereOr()
查询附加多个条件
.where(, , ,)
.whereOr(, , ,)
查询附加排序
.orderDesc()
.orderAsc()
查询限制当页个数
.limit()
查询总个数
.count()
修改单个数据
getShopDao().update(shop);
修改多个数据
getShopDao().updateInTx(shopList);
删除单个数据
getTABUserDao().delete(user);
删除多个数据
getUserDao().deleteInTx(userList);
删除数据ByKey
getTABUserDao().deleteByKey();
简单的增删改查就是这样