当前位置: 首页 > 工具软件 > QueryBuilder > 使用案例 >

Android GreenDao框架使用 进阶篇之queryBuilder

冷正信
2023-12-01

参考

官方文档

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里面还可以写复杂语句,这样就可以实现多条件嵌套查询。

 类似资料: