mybatis-plus自定义排序的实现
短信预约 -IT技能 免费直播动态提醒
需求:
- 先时间升序排序,相同的时间在按状态排序,
- 状态的顺序为1 在线 4 潜伏 2 隐身 3 离开,
- 状态相同在按姓名升序排序
- 对排序好的数据进行分页
- 运用mybatis-plus中QueryWrapper
1.导入依赖
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.1</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
</dependencies>
2.配置文件
spring:
# 配置数据源信息
datasource:
# 配置数据源类型
type: com.zaxxer.hikari.HikariDataSource
# 配置连接数据库信息
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/mybatis_plus?characterEncoding=utf-8&useSSL=false
username: root
password: 123456
mybatis-plus:
configuration: # 配置MyBatis日志
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
3.创建分页需要的缓存
@Configuration
@MapperScan("scan.your.mapper.package")
public class MybatisPlusConfig {
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor() {
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.H2));
return interceptor;
}
}
4.创建实体类
@Data
public class User {
private Integer id;
private String name;
private Integer age;
private String email;
private Integer state;//1 在线 4 潜伏 2 隐身 3 离开
private Date time;
}
5.mapper
public interface UserMapper extends BaseMapper<User> {
}
在启动类上加了@MapperScan(“com.example.mapper”)
6.测试
@Test
void selectUser(){
QueryWrapper<User> wrapper=new QueryWrapper<>();
//时间升序排序
wrapper.lambda().orderByAsc(User::getTime);
//状态的自定义排序,和姓名排序
wrapper.orderByAsc(" field(state,1,4,2,3)");
wrapper.lambda().orderByAsc(User::getName);
//分页
Page page=new Page<>();
page.setSize(3);//每页的长度
page.setPages(1);//第几页
userMapper.selectPage(page,wrapper);
}
7.结果
到此这篇关于mybatis-plus自定义排序的实现的文章就介绍到这了,更多相关mybatis-plus 自定义排序内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341