美文网首页
Android ORMLite框架 复杂查询

Android ORMLite框架 复杂查询

作者: MQLX | 来源:发表于2017-08-19 10:55 被阅读0次

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

    相关文章

      网友评论

          本文标题:Android ORMLite框架 复杂查询

          本文链接:https://www.haomeiwen.com/subject/rgctdxtx.html