前言:

想必数据分页对于每一个程序员并不陌生,针对分页查询功能代码实现上;肯定是代码简洁明了且能达到分页的效果会更好!

现在我将基于SpringBoot - mybatisPlus分页查询的方法总结如下;废话不多说,直接上代码:

一、Mybatis-Plus的依赖:

<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>3.4.3.1</version>
 </dependency>

二、编写分页config

import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
 
/**
 * @Project:
 * @Description:
 * @Auther: songwp
 * @Date: 2022/7/30
 **/
@Configuration
@MapperScan("com.songwp.mapper")
public class MybatisPlusConfig {
    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor() {
        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
        interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
        return interceptor;
  }
  • 我们要将mybatisPlusInterceptor 这个方法注册到Bean里面,不然我们的插件就会失效。
  • 使用@MapperScan这个注解,让系统扫描我们的Mapper类。注意一定要指定正确的Mapper地址。
  • 在类方法上上面使用注解:@Configuration表面这是一个config类

三、测试代码块

   @Resource
    SalaryDetailMapperExtend salaryDetailMapperExtend;

    public Page<SalaryDetail> selectSalaryDetailPage(@RequestParam(defaultValue = "0")Integer pageNum,
                                                     @RequestParam(defaultValue = "10") Integer pageSize,
                                                     String name){
        Page<SalaryDetail> salaryDetailPage = salaryDetailMapperExtend
                .selectPage(new Page<>(pageNum, pageSize), Wrappers.<SalaryDetail>lambdaQuery()
                // 降序排序
                .orderByDesc(SalaryDetail::getId));
                // 升序排序 (数据库查询出来的数据  默认是 asc 升序排序)
                // .orderByAsc(SalaryDetail::getId))
                // 根据name模糊查询并且按照id降序查询
                //.orderByDesc(SalaryDetail::getId).like(SalaryDetail::getName,name);
                // 根据name查询并且按照id降序查询
                //.orderByDesc(SalaryDetail::getId).eq(SalaryDetail::getName,name);
        log.info("[工资详情信息分页代码测试] pageNum: {} ---salaryDetailPage {}---- pageSize: {}",pageNum,salaryDetailPage,pageSize);

        return salaryDetailPage;
    }

四:数据查询展示: