文章目录
  1. 1. 准备工作
  2. 2. 开始排序
    1. 2.1. 简单排序
    2. 2.2. 多排序
  3. 3. 结束
  4. 4. 关注@我 

项目地址:https://github.com/wz2cool/mybatis-dynamic-query
文档地址:https://wz2cool.gitbooks.io/mybatis-dynamic-query-zh-cn/content/
排序和筛选类似,主要使用 SortDescriptor 来做描述
关于 SortDescriptor定义可以参照:SortDescriptor类

准备工作

这里我们沿用简单筛选里面的准备工作即可。

开始排序

简单排序

让价格倒叙排列

1
2
3
4
5
6
7
8
9
10
@Test
public void testSort() throws Exception {
SortDescriptor priceSort =
new SortDescriptor("price", SortDirection.DESC);

Map<String, Object> queryParams =
mybatisQueryProvider.getSortQueryParamMap(
Product.class, "orderExpression", priceSort);
northwindDao.getProductByDynamic(queryParams);
}

输出结果可以看到价格已经按照倒叙排列了
1
2
3
4
5
6
7
8
==>  Preparing: SELECT * FROM product ORDER BY price DESC 
==> Parameters:
<== Columns: PRODUCT_ID, CATEGORY_ID, PRODUCT_NAME, PRICE
<== Row: 1, 1, Northwind Traders Chai, 18.0000
<== Row: 3, 2, Northwind Traders Cajun Seasoning, 16.5000
<== Row: 4, 3, Northwind Traders Olive Oil, 16.5000
<== Row: 2, 2, Northwind Traders Syrup, 7.5000
<== Total: 4

多排序

我们可以加入多排序,注意这里的顺序是很重要的,排序优先级是按照加入的优先级别来的,就是第一个加入的优先级别最高。

1
2
3
4
5
6
7
8
9
10
11
12
@Test
public void testMultiSort() throws Exception {
SortDescriptor priceSort =
new SortDescriptor("price", SortDirection.DESC);
SortDescriptor idSort =
new SortDescriptor("productID", SortDirection.DESC);

Map<String, Object> queryParams =
mybatisQueryProvider.getSortQueryParamMap(
Product.class, "orderExpression", priceSort, idSort);
northwindDao.getProductByDynamic(queryParams);
}

和之前的测试结果有一点不一样了,id 为3,4的产品(价格相同),顺序变化了。
1
2
3
4
5
6
7
8
==>  Preparing: SELECT * FROM product ORDER BY price DESC, product_id DESC 
==> Parameters:
<== Columns: PRODUCT_ID, CATEGORY_ID, PRODUCT_NAME, PRICE
<== Row: 1, 1, Northwind Traders Chai, 18.0000
<== Row: 4, 3, Northwind Traders Olive Oil, 16.5000
<== Row: 3, 2, Northwind Traders Cajun Seasoning, 16.5000
<== Row: 2, 2, Northwind Traders Syrup, 7.5000
<== Total: 4

结束

和筛选一样,同样可以控制你排序条件的插入。理解筛选了,那么排序也就非常容易类比了。

关注@我 

最后大家可以关注我和 Mybatis-Dynamic-query项目 ^_^
Follow @wz2cool Star Fork

文章目录
  1. 1. 准备工作
  2. 2. 开始排序
    1. 2.1. 简单排序
    2. 2.2. 多排序
  3. 3. 结束
  4. 4. 关注@我