当前位置:主页 > java教程 > mybatis-plus 自定义排序

mybatis-plus自定义排序的实现

发布:2023-03-04 13:00:01 59


本站精选了一篇相关的编程文章,网友陆桐欣根据主题投稿了本篇教程内容,涉及到mybatis-plus 自定义排序、mybatis-plus 排序、mybatis-plus 自定义排序相关内容,已被511网友关注,如果对知识点想更进一步了解可以在下方电子资料中获取。

mybatis-plus 自定义排序

需求:

  • 先时间升序排序,相同的时间在按状态排序,
  • 状态的顺序为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 {
    /**
     * 新的分页插件,一缓和二缓遵循mybatis的规则,需要设置 MybatisConfiguration#useDeprecatedExecutor = false 避免缓存出现问题(该属性会在旧插件移除后一同移除)
     */
    @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.结果

img

 到此这篇关于mybatis-plus自定义排序的实现的文章就介绍到这了,更多相关mybatis-plus 自定义排序内容请搜索码农之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持码农之家!


参考资料

相关文章

网友讨论