Spring Boot整合Mybatis-plus插件实现分页
创建MyMetaObjectHandler
配置类
此时可以删除主类中的 @MapperScan
扫描注解
@EnableTransactionManagement
@Configuration
@MapperScan("com.songzixian.mapper*") //这里添加了`@MapperScan`注解 启动无需再添加,因为作用都一样
public class MybatisPlusConfig {
@Bean
public PaginationInterceptor paginationInterceptor() {
PaginationInterceptor paginationInterceptor = new PaginationInterceptor();
// 设置请求的页面大于最大页后操作, true调回到首页,false 继续请求 默认false
// paginationInterceptor.setOverflow(false);
// 设置最大单页限制数量,默认 500 条,-1 不受限制
// paginationInterceptor.setLimit(500);
// 开启 count 的 join 优化,只针对部分 left join
paginationInterceptor.setCountSqlParser(new JsqlParserCountOptimize(true));
return paginationInterceptor;
}
}
编写Controller
层
/**
* Mybatis-Plus分页实现
* @param current
* @param size
* @return
*/
@RequestMapping("PagePlugInMybatisPlus")
@ResponseBody
public Page<User> PagePlugInMybatisPlus(long current,long size){
//创建Page对象: 1=当前页 , 5=每页显示记录数
Page<User> page = new Page<>(current,size); //例如传入(1,5)
//调用Mybatis Plis的分页查询的方法
//调用ybatis Plis的过程中,底层封装,把分页的所有数据封装到page对象中
userMapper.selectPage(page,null);
//通过Page对象获![Mybatis-plus分页插件2.png][2]取分页信息
//long current = page.getCurrent();//当前页
List<User> records = page.getRecords(); //每页的数据 list集合
//long size = page.getSize(); //每页显示的条数
long total = page.getTotal(); //总记录数
long pages = page.getPages(); //总页数
boolean pagehasNext = page.hasNext(); //下一页
boolean pagehasPrevious = page.hasPrevious(); //上一页
return page;
}
访问:http://localhost:8888/PagePlugInMybatisPlus?current=1&size=5
返回数据结果
sql语句
SELECT id,name,age,email,create_time,update_time,version FROM user LIMIT 0,5