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