美文网首页
GreenDao3.X排序方法踩坑

GreenDao3.X排序方法踩坑

作者: AndroidDMW | 来源:发表于2017-11-14 11:18 被阅读811次

    前言

            greenDao是一个将对象映射到SQLite数据库中的轻量且快速的ORM解决方案。关于greenDAO的概念可以看官网greenDAO(看不懂的请右键翻译成中文【严肃脸】)。关于greenDAO的优点,个人认为就是链式使用方便快捷不需要繁多的SQL语句,还有就是节省内存,嗯就这样。(简单使用请参考http://www.jianshu.com/p/4986100eff90 )下面开始踩坑。。。


    greenDao 排序方法

    关于greenDao 的排序 , 常用的有三个方法

    1.orderAsc(Property...properties)

    /** Adds the given properties to the ORDER BY section using ascending order. */

    public QueryBuilder orderAsc(Property... properties){

    orderAscOrDesc(" ASC", properties);

    return this;

    }

    很简单这是个正序排序,传入参数即可。SQL语句中排序orderby的时候是不指定正反序,默认是正序。但是无论是greenDao还是SQL语句进行排序,这里都有一个坑,敲黑板!!!就是这个需要的这个参数properties的类型,千万不要是String!!!楼主在这坑爬了半天,简单举例如果你这个参数是string类型的,那么你就会发现它是一位一位取出来进行排序的,就是这样的 1,10,11,12...2,20,21,22....而不是你想要的123456...

    2.orderDesc(Property... properties)

    /** Adds the given properties to the ORDER BY section using descending order. */

    publicQueryBuilder orderDesc(Property... properties) {

    orderAscOrDesc(" DESC", properties);

    return this;

    }

    这个是倒叙没什么好说的...

    3.orderRaw(String rawOrder)

    /**

    * Adds the given raw SQL string to the ORDER BY section. Do not use this for standard properties: orderAsc and

    * orderDesc are preferred.

    */

    publicQueryBuilder orderRaw(String rawOrder) {

    checkOrderBuilder();

    orderBuilder.append(rawOrder);

    return this;

    }

    这个就厉害了,举个例子,你要做个考试系统的随机练习功能,但是greenDao并没有像SQL语句那样提供random方法,这时候如果又用回SQL语句建立规则然后游标cu'rsor查询,那我们为什么费劲巴拉的用greenDao呢,其实greenDao是可以结合SQL语句进行食用的,安全无公害还嘎嘣脆【笑。。。】这里用这个方法就可以轻松实现,点出来写入语句即可。(注:这里输出list的时候不要用.listLazyUncached()!!!

    orderRaw("RANDOM()")

    温故知新可为师,很高兴能跟大家分享。

    相关文章

      网友评论

          本文标题:GreenDao3.X排序方法踩坑

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