分页插件
MyBatis Plus自带分页插件,只要简单的配置即可实现分页功能
1、添加配置类
@Configuration
//扫描mapper接口所在的包
@MapperScan("top.qaqaq.mybatisplus.mapper")
public class MyBatisPlusConfig {
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor() {
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
//添加分页插件
interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
return interceptor;
}
}
2、测试
//分页相关数据获取
@Test
public void testPage() {
Page<User> page = new Page<>(1, 3);
userMapper.selectPage(page, null);
//获取当前页数据 getRecords()
System.out.println(page.getRecords());
//获取总页数 getPages()
System.out.println(page.getPages());
//获取总记录数 getTotal()
System.out.println(page.getTotal());
//是否有下一页 hasNext()
System.out.println(page.hasNext());
//是否有上一页 hasPrevious()
System.out.println(page.hasPrevious());
}
xml自定义分页
1、UserMapper中定义接口方法
/**
* 通过年龄查询用户信息并分页
* @param page MyBatis-Plus所提供的分页对象,必须位于第一个参数的位置
* @param age
* @return
*/
Page<User> selectPageVo(@Param("page") Page<User> page, @Param("age") Integer age);
2、UserMapper.xml中编写SQL
<!--Page<User> selectPageVo(@Param("page") Page<User> page, @Param("age") Integer age);-->
<select id="selectPageVo" resultType="User">
select uid, user_name, age, email from t_user where age > #{age}
</select>
3、测试
//自定义分页功能
@Test
public void testPageVo() {
Page<User> page = new Page<>(1, 3);
userMapper.selectPageVo(page, 20);
//获取当前页数据 getRecords()
System.out.println(page.getRecords());
//获取总页数 getPages()
System.out.println(page.getPages());
//获取总记录数 getTotal()
System.out.println(page.getTotal());
//是否有下一页 hasNext()
System.out.println(page.hasNext());
//是否有上一页 hasPrevious()
System.out.println(page.hasPrevious());
}
注
application.yaml中需添加如下代码
mybatis-plus:
# 配置类型别名所对应的包
type-aliases-package: top.qaqaq.mybatisplus.pojo