在配置类中已经配置了了 MybatisPlusInterceptor并且添加了PaginationInnerInterceptor,如下图所示
@Bean("plusInterceptor")
public MybatisPlusInterceptor mybatisPlusInterceptor() {
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor(){};
PaginationInnerInterceptor p= new PaginationInnerInterceptor();
p.setDbType(DbType.MYSQL);
p.setMaxLimit(10L);
interceptor.addInnerInterceptor(p);
return interceptor;
}
同时 通过启动类代码 (如下)
MybatisPlusInterceptor interceptor= (MybatisPlusInterceptor) ctx.getBean("plusInterceptor");
List<InnerInterceptor> ins=interceptor.getInterceptors();
ins.forEach(x->log.info(x.toString()));
日志输出bean 已经注入,并且拦截器已经添加。
分页部分代码:
QueryWrapper<User> query = new QueryWrapper<>();
query.lt("id", index);
Page<User> pages = new Page<>((index/3), 3);
UserMapper mapper = this.sqlSession.getMapper(UserMapper.class);
IPage<User> ipages1 = mapper.selectPage(pages, query);
log.info(String.valueOf(ipages1.getTotal()+"__"+ipages1.getSize()+"__"+ipages1.getPages()));
return ipages1;
完整方法代码:
@PostMapping("/user/{index}")
public IPage<User> getUser(@PathVariable int index) {
List<User> users = new ArrayList<>();
if (index > 0) {
QueryWrapper<User> query = new QueryWrapper<>();
query.lt("id", index);
Page<User> pages = new Page<>((index/3), 3);
UserMapper mapper = this.sqlSession.getMapper(UserMapper.class);
IPage<User> ipages1 = mapper.selectPage(pages, query);
log.info(String.valueOf(ipages1.getTotal()+"__"+ipages1.getSize()+"__"+ipages1.getPages()));
return ipages1;
}
return null;
}
但是还是没有分页效果,SQL语句没有limit。
返回的 IPage json对象信息