GreenDao3.X排序方法踩坑

本文介绍了GreenDao作为ORM解决方案的排序功能,包括orderAsc、orderDesc和orderRaw方法的使用。强调orderRaw方法在实现随机排序时的作用,并提醒读者在使用排序时注意参数类型应为Property而非String。同时,文章提醒在使用orderRaw获取随机列表时避免使用.listLazyUncached()。
摘要由CSDN通过智能技术生成

前言

        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()")

温故知新可为师,很高兴能跟大家分享。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值