SpringBoot(六)mybatis-plus分页插件
SpringBoot(六)mybatis-plus分页插件
·
1.分页插件
MyBatis Plus自带分页插件,只要简单的配置即可实现分页功能
-
导入mybatis-plus依赖
<!--mybatis-plus启动器--> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.5.1</version> </dependency> <!-- 数据库驱动 --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.27</version> </dependency> -
添加配置类
MyBatisPlusConfig@Configuration @MapperScan("com.atguigu.mybatisplus.mapper") public class MyBatisPlusConfig { //配置MybatisPlus的插件的 Interceptor:拦截器 @Bean public MybatisPlusInterceptor mybatisPlusInterceptor(){ MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor(); //添加分页插件 DbType:数据库类型 interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL)); return interceptor; } } -
编写测试方法
@Test public void testPage(){ //new Page()中的两个参数分别是当前页码,每页显示数量 //SELECT id,name,age,email,is_deleted FROM t_user WHERE is_deleted=0 LIMIT ?,? Page<User> page = new Page<>(2,2); Page<User> userPage = userMapper.selectPage(page, null); System.out.println(userPage); List<User> users = page.getRecords();//分页后的数据 users.forEach(System.out::println); System.out.println("总页数:"+userPage.getPages()); System.out.println("总条数:"+userPage.getTotal()); System.out.println("当前页:"+userPage.getCurrent()); System.out.println("当前页显示条数:"+userPage.getSize()); System.out.println("是否有下一页:"+userPage.hasNext()); System.out.println("是否有上一页:"+userPage.hasPrevious()); }
2.自定义分页
上面调用的是MyBatis-Plus提供的带有分页的方法,那么我们自己定义的方法如何实现分页呢?
-
在
UserMapper接口中定义一个方法/** * 根据年龄大于20的用户查询用户列表,分页显示 * @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 = userMapper.selectPageVo(new Page<User>(1,2), 20); List<User> users = page.getRecords(); users.forEach(System.out::println); }第二种写法
//自定义分页 根据年龄大于20的用户查询用户列表,分页显示 @Test public void testPageVo(){ Page<User> page = new Page<>(1,2); QueryWrapper<User> queryWrapper = new QueryWrapper<>(); queryWrapper.gt("age",20); userMapper.selectPage(page,queryWrapper); List<User> users = page.getRecords(); users.forEach(System.out::println); }
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐

所有评论(0)