greenDao的对于表的操作总结

greenDao的对于表的操作总结:(需要将App卸载重装,才能走建表语句)

1、一般要写一个DaoUtil,用于获取对表操作的对象: 在DaoUtil中主要代码:
DaoMaster.OpenHelper helper = new ......
DaoMaster daoMaster = new DaoMaster(helper.getWritableDatabase());

2、在使用的时候是先得到一个daoSession对象,再进行对于数据库中表的操作: DaoSession daoSession = DaoUtil.getDaoSession(context);

3、对表进行执行增删改查:
增加:
①.例如增加:(insertOrReplaceInTx):使用事务操作,将给定的实体集合插入数据库,所此实体存在,则覆盖:
daoSession.getNotifyEntityDao().insertOrReplaceInTx(mUnreadNoticeList);
②insertInTx:将给定的实体插入数据库
③insertorReplace(T entity):将给定的实体插入数据库,若此实体类存在,则覆盖。
④save(T entity):将给定的实体插入数据库,若实体存在,则更新。

删除:
delete(T entity):从数据库中删除给定的实体
deleteAll() :删除数据库中全部数据
deleteByKey(K key):从数据库中删除给定Key所对应的实体
deleteByKeyInTx(java.lang.Iterable keys):使用事务操作删除数据库中给定的所有key所对应的实体
deleteByKeyInTx(K... keys):使用事务操作删除数据库中给定的所有key所对应的实体
deleteInTx(java.lang.Iterable entities):使用事务操作删除数据库中给定实体集合中的实体
deleteInTx(T... entities):使用事务操作删除数据库中给定的实体

修改:
update(T entity) :更新给定的实体
updateInsideSynchronized(T entity, DatabaseStatement stmt, boolean lock)
updateInsideSynchronized(T entity, android.database.sqlite.SQLiteStatement stmt, boolean lock)
updateInTx(java.lang.Iterable entities) :使用事务操作,更新给定的实体
updateInTx(T... entities):使用事务操作,更新给定的实体

查询:使用QueryBuilder自定义查询实体,而不是再写繁琐的SQL语句,避免SQL语句出错率。
官方给的查询例子:

①List joes = userDao.queryBuilder()
// 查询的条件
.where(Properties.FirstName.eq("Joe"))
// 返回实体集合升序排列
.orderAsc(Properties.LastName)
.list();

②QueryBuilder qb = userDao.queryBuilder();
// 查询的条件
qb.where(Properties.FirstName.eq("Joe"),
qb.or(Properties.YearOfBirth.gt(1970),
qb.and(Properties.YearOfBirth.eq(1970), Properties.MonthOfBirth.ge(10))));
List youngJoes = qb.list();

③其他为分页等不方便而存在的api:
limit(int):限制查询返回结果的数目
offset(int):设置查询结果的偏移量,此查询需与limit(int)结合使用,而不能够脱离limit(int)单独使用

④如果查询的结果是多个(返回的结果是一个集合等)
list():所有实体加载至内存,结果通常是一个ArrayList
listLazy():实体在需要时,加载至内存,表中的第一个元素被第一次访问时会被缓存,下次访问时,使用缓存
listLazyUncached():任何对列表实体的访问懂事从数据库中加载
listIterator():以按需加载的方式来遍历结果,数据没有被缓存

List mUnreadNoticeListFromDB = daoSession.getNotifyEntityDao().queryBuilder().list();

你可能感兴趣的:(greenDao的对于表的操作总结)