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(); //总条数 }