前言
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()")
网友评论