Android ORMLite框架组合查询条件

上一篇博客讲述了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月18日完成本文。

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值