Query
查询返回的结果的实体符合特定标准。在greenDao中可以使用sql语句,或者更加方便的方式QueryBuilder的api或者是greenDao,greenDao同样支持延迟查询,在查询大量数据的时候可以节约内存,并且提高性能。
QueryBuilder
这个类可以用来自定义查询语句,而不用写SQL语句,写SQL语句不是每个人都喜欢的,同时也容易出错。而且只有运行后才知道写错了sql语句。同时在sql语句中找bug比在语法中找bug要难得多。编译时检查甚至包括引用属性,这是通过greenDAO背后的代码生成器的方法。
Example
查询所有名为joe的通过last name 排序
List joes = userDao.queryBuilder()
.where(Properties.FirstName.eq("Joe"))
.orderAsc(Properties.LastName).list()
嵌套查询
查询所有的用户,条件为first name 为Joe,且出生在1970年十月 ,或者更晚。
在数据库中存储用户的生日分为年月日三个字段。根据我们sql知识知道,条件语句为
First name is “Joe” AND (year of birth is greater than 1970 or year of birth is 1970 AND month of birth is greater than octorber)
QueryBuilder的表达方式为:
QueryBuilder qb = userDao.queryBu