Android ORMLite框架 复杂查询

2017-08-19  本文已影响0人  MQLX

上一篇博客讲述了ORMLite框架的基本用法。最后留下一个问题,对于查询条件比较高的查询ORMLite如何查询呢?

这里ORMLite提供了QureyBuilder类解决复杂查询的问题。

还是先上一些代码看看:

QueryBuild  erqueryBuilder = userDao.queryBuilder();           

queryBuilder

    .distinct()// 排重                    

    .groupBy("columnName")  //分组

    .limit(1000L).offset(10L) //分页                                    

    .orderBy("name", true)  //排序                   

    .where().like("name", "%张三%");          

List<User> users = queryBuilder.query();

这里我们使用Dao类的一个方法queryBuilder()获取一个QueryBuiler对象,然后给这个连续调用这个对象的方法,组合成一个复杂的查询条件,再调用query()方法就可以返回一个集合,这个集合就是查询结果了,是不是特别简单~

那么查询的重点就是QueryBuilder的一系列查询方法了,我们来看看常用方法:

distinct() //去除重复的数据行
 
orderBy(String columnName, boolean ascending) //根据指定列名排序,columnName为列名,第二个参数false表示降序,true表示
升序
 
groupBy(String columnName) //根据指定列名分组
 
offset(Long startRow) //跳过指定行数
 
limit(Long maxRows) //限制获取指定行数
 
countOf() //返回按照已组合的查询条件查询的数据总数

另外还有一些where子句,这些where子句和where()方法一起使用,准确的说是where()语句会返回一个Where对象,改Where对象提供了这些where子句,我们来看看常用where子句:

eq(String columnName, Object value) //此方法相当于SQL语句中的 WHERE id = 2,columnName为列名,value为匹配键
 
lt(String columnName, Object value) //此方法相当于SQL语句中的 WHERE id < 2
 
gt(String columnName, Object value) //此方法相当于SQL语句中的 WHERE id > 2
 
le(String columnName, Object value) //此方法相当于SQL语句中的 WHERE id <=2
 
ge(String columnName, Object value) //此方法相当与SQL语句中的 WHERE id >=2
 
ne(String columnName, Object value) //此方法相当于SQL语句中的 WHERE id <> 2
 
in(String columnName, Object... objects) // 此方法相当于SQL语句中的 WHERE id IN(1,2)
 
notIn(String columnName, Object... objects) //此方法相当于SQL语句中的 WHERE id NOT IN(1,2)
 
like(String columnName, Object value) //此方法相当于SQL语句中的 WHERE id LIKE “2%”
 
between(String columnName, Object low, Object high) //此方法相当于SQL语句中的 WHERE id BETWEEN 1 AND 2
 
and()、or() //用来组合以上这些方法

有这些方法,想必一般的复杂查询都可以解决了~


MQL于2017年8月19日完成本文。

上一篇下一篇

猜你喜欢

热点阅读