注意:本教程使用的数据库脚本、数据模型和环境信息请参考 “MyBatis Plus环境准备” 章节,点击下载示例源码。
本章节将介绍怎样使用 orderByAsc、orderByDesc 和 orderBy 三个方法实现数据排序。它们定义分别如下:
orderByAsc(R... columns) orderByAsc(boolean condition, R... columns)
参数说明:
columns:列名称,可以指定多个
condition:用于指定当前这个条件是否有效;如果为 true,则应用当前条件;如果为 false,则忽略当前条件
实例:根据用户 ID 和 年龄递增排序。
QueryWrapper<UserBean> wrapper = new QueryWrapper<>();
wrapper.orderByAsc("user_id", "age");orderByDesc(R... columns) orderByDesc(boolean condition, R... columns)
参数说明:
columns:列名称,可以指定多个
condition:用于指定当前这个条件是否有效;如果为 true,则应用当前条件;如果为 false,则忽略当前条件
实例:根据用户 ID 和 年龄递减排序。
QueryWrapper<UserBean> wrapper = new QueryWrapper<>();
wrapper.orderByDesc("user_id", "age");orderBy(boolean condition, boolean isAsc, R... columns)
参数说明:
columns:列名称,可以指定多个
condition:用于指定当前这个条件是否有效;如果为 true,则应用当前条件;如果为 false,则忽略当前条件
isAsc:是否使用 ASC 排序,即递增排序;否则,则使用递减(DESC)排序
实例:根据用户 ID 和 年龄递减排序。
QueryWrapper<UserBean> wrapper = new QueryWrapper<>(); wrapper.orderBy(true, false, "user_id", "age");
package com.hxstrive.mybatis_plus.simple_mapper.condition;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.hxstrive.mybatis_plus.mapper.SimpleMapper;
import com.hxstrive.mybatis_plus.model.UserBean;
import org.junit.jupiter.api.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import java.util.List;
@RunWith(SpringRunner.class)
@SpringBootTest
class Condition12Test {
@Autowired
private SimpleMapper simpleMapper;
@Test
void contextLoads() {
QueryWrapper<UserBean> wrapper = new QueryWrapper<>();
wrapper.le("user_id", 10);
wrapper.orderByAsc("user_id");
List<UserBean> userBeanList = simpleMapper.selectList(wrapper);
for(UserBean userBean : userBeanList) {
System.out.println(userBean);
}
wrapper = new QueryWrapper<>();
wrapper.le("user_id", 10);
wrapper.orderByDesc("user_id");
userBeanList = simpleMapper.selectList(wrapper);
for(UserBean userBean : userBeanList) {
System.out.println(userBean);
}
}
}运行上面代码,实际上执行的是如下 SQL 语句:
Preparing: SELECT user_id,name,sex,age,face,salary,borthday FROM user WHERE (user_id <= ?) ORDER BY user_id ASC Parameters: 10(Integer) Preparing: SELECT user_id,name,sex,age,face,salary,borthday FROM user WHERE (user_id <= ?) ORDER BY user_id DESC Parameters: 10(Integer)
很不错
谢谢支持,我会努力的。