GreenDao3.X排序方法踩坑

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了GreenDao3.X排序方法踩坑相关的知识,希望对你有一定的参考价值。

参考技术A 关于greenDao 的排序 , 常用的有三个方法

1.orderAsc(Property...properties)

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

2.orderDesc(Property... properties)

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

3.orderRaw(String rawOrder)

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

正确使用@Async,避免踩坑

参考技术A

功能描述

@Async是Spring提供的使方法异步的注解

使用方法

代码示例

已实现的TaskExecutor线程池


@Async依赖线程池,当我们未指定线程池@Async会如何选择呢?

1. 当系统未配置任何线程池时

SpringBoot会默认添加一个coreSize=8的 ThreadPoolTaskExecutor 无界线程池,名称applicationTaskExecutor。

2. 当只配置了一个TaskExecutor线程池时

使用此线程池

3. 当只配置了一个线程池,但不是TaskExecutor线程池时

使用 SimpleAsyncTaskExecutor 线和池

4. 当有多个TaskExecutor线程池时

默认使用 SimpleAsyncTaskExecutor 线程池,如果指定就使用指定的线程池(即使不是TaskExecutor类型的线程池也可以)

注意: SimpleAsyncTaskExecutor 不是真的线程池,这个类不重用线程,每次调用都会创建一个新的线程。强烈建议开发时指定线程池的名称,避免创建多个TaskExecutor实例后,使用 SimpleAsyncTaskExecutor 线和池的情况发生

以上是关于GreenDao3.X排序方法踩坑的主要内容,如果未能解决你的问题,请参考以下文章

面试之选择排序——你会怎么优化她面试踩坑优化

冒泡排序的优化你真的不知道?面试踩坑优化

Postgresql 分页数据查询踩坑

GreenDao 3.X之基本使用

Python中经典排序方法

集合Collections 常用的排序方法