使用mybatis_plus快速实现分页插件

1.分页插件

MyBatis Plus自带分页插件,只要简单的配置即可实现分页功能

  • 添加配置类MyBatisPlusConfig

    @Configuration
    @MapperScan("com.atguigu.mybatisplus.mapper")
    public class MyBatisPlusConfig {
        @Bean
        public MybatisPlusInterceptor mybatisPlusInterceptor(){
            MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
            //添加分页插件
            interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
            return interceptor;
        }
    }
    
  • 编写测试方法

    获取下面这些就足够了,提交到前端,前端会自己生成有关导航页的信息

    如果需要后端,查阅mybatis

    @Test
    public void testPage(){
        //new Page()中的两个参数分别是当前页码,每页显示数量
        Page<User> page = new Page<>(1 , 3);
        //null 表示全部都选
        userMapper.selectPage(page ,  null);
        
    	//结果page最后也会被封装结果
        long current = page.getCurrent(); 		//页码
        long size = page.getSize();      		//页容量
        List<User> records = page.getRecord();	//当前页的数据
        long total = page.getTotal();           //总条数
    }
    
  • 前端接口

    /* 
    需求说明
        查询全部数据页数据
    请求uri
        schedule/{pageSize}/{currentPage}
    请求方式 
        get   
    响应的json
        {
            "code":200,
            "flag":true,
            "data":{
                //本页数据
                data:
                [
                {id:1,title:'学习java',completed:true},
                {id:2,title:'学习html',completed:true},
                {id:3,title:'学习css',completed:true},
                {id:4,title:'学习js',completed:true},
                {id:5,title:'学习vue',completed:true}
                ], 
                //分页参数
                pageSize:5, // 每页数据条数 页大小
                total:100 ,   // 总记录数
                currentPage:1 // 当前页码
            }
        }
    */
    

2.自定义分页

查询的条件不一样

  • UserMapper接口中定义一个方法

    /**
      * 根据年龄查询用户列表,分页显示 
      * @param page 分页对象,xml中可以从里面进行取值,传递参数 Page 即自动分页,必须放在第一位 
      * @param age 年龄 
      * @return 
      */
    Page<User> selectPageVo(@Param("page") Page<User> page,@Param("age") Integer age);
    
  • UserMapper.xml中编写SQL实现该方法

    <select id="selectPageVo" resultType="User">
        select id,username as name,age,email from t_user where age > #{age}
    select>
    
  • 编写测试方法

    @Test
    public void testPageVo(){
        Page<User> page = new Page<User>(1 ,2);
        userMapper.selectPageVo(page , 20);
     
        
        //结果page最后也会被封装结果
        long current = page.getCurrent(); 		//页码
        long size = page.getSize();      		//页容量
        List<User> records = page.getRecord();	//当前页的数据
        long total = page.getTotal();           //总条数
    }
    

你可能感兴趣的:(SSM框架的学习之旅,mybatis,java,springboot)