Android GreenDao框架使用 进阶篇之queryBuilder

参考

官方文档

Github

系列

Android GreenDao框架使用 基础篇
Android GreenDao框架使用 增删改查篇

queryBuilder的用法可以通过链式指令来执行,比如

testUserDao.queryBuilder().xx.xx.xx.结束指令。

关于结束指令,如下图

方法 解释
.list() 查询符合条件的数据
.buildDelete().executeDeleteWithoutDetachingEntities() 删除符合条件的数据
.count() 查询符合条件的个数

当然不止这些,这些是比较常见的。

关于条件查询,GreenDao提供了很多方法

方法 解释
where 查询条件(where里的条件必须全部符合)
whereOr 查询条件(where里的条件有符合就可以)
offset 忽略查询出的前n条结果
orderAsc 升序排列
orderDesc 降序排列

下面是条件查询里面的方法

方法 条件
eq ==
notEq !=
like 模糊查询
between 两个值的区间
in 范围区间
notIn 不在范围区间
gt >
lt <
ge >=
le <=
isNull 为空
isNotNull 不为空

例子

 testUserDao.queryBuilder().where(TestUserDao.Properties.Name.eq(name),TestUserDao.Properties.Age.eq(12)).list();
 testUserDao.queryBuilder().whereOr(TestUserDao.Properties.Name.eq(name),TestUserDao.Properties.Age.eq(12)).list();

无论是where还是whereOr里面的判断语句都可以是一条或多条,区别在于where里是 “ 且 ” 的关系,而whereOr是 “ 或 ”的关系。

 QueryBuilder<TestUser> qb = testUserDao.queryBuilder();
 List<TestUser> testUsers = qb.where(qb.and(TestUserDao.Properties.Name.eq(name),TestUserDao.Properties.Age.eq(12))).list();
 QueryBuilder<TestUser> qb = testUserDao.queryBuilder();
 List<TestUser> testUsers = qb.where(TestUserDao.Properties.Name.eq(name),qb.or(TestUserDao.Properties.Age.eq(12),TestUserDao.Properties.Age.eq(15))).list();

同时where和whereOr里面还可以写复杂语句,这样就可以实现多条件嵌套查询。

猜你喜欢

转载自blog.csdn.net/m0_48440239/article/details/114301745