MybatisPlusPage快速分页
sql语句不需要变化,就像aop一样在查询出来的全部数据上进行分页返回。
首先导入MybatisPlus包
<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>
</dependency>
第二步编写开启分页
/**
* @author : LeeGaki
* @date : 2022/7/16 16:33
* 面向面试编程 --> 李佳琪
*/
@Configuration
public class MybatisPlusPageConfig{
/**
* 防止 修改与删除时对全表进行操作
* @return
*/
@Bean
public BlockAttackInnerInterceptor blockAttackInnerInterceptor(){
return new BlockAttackInnerInterceptor();
}
/**
* 新的分页插件,一缓和二缓遵循mybatis的规则,需要设置 MybatisConfiguration#useDeprecatedExecutor = false 避免缓存出现问题
*/
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor() {
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
return interceptor;
}
}
第三步Mapper使用
/**
* 分页查询
* @param page
* @return
*/
IPage<Books> getBookBypage(Page<Books> page);
service+serviceImpl
List<Books> getBookByPage(Integer currentPage, Integer size);
@Autowired
private BooksMapper booksMapper;
@Override
public List<Books> getBookByPage(Integer currentPage, Integer size) {
//开启分页
Page<Books> page = new Page<>(currentPage,size);
IPage<Books> bookBypage = booksMapper.getBookBypage(page);
return bookBypage.getRecords();
}
Controller
@GetMapping("/")
public List<Books> findAll(@RequestParam(defaultValue = "1") Integer currentPage,@RequestParam(defaultValue = "2") Integer size){
System.out.println(currentPage);
System.out.println(size);
List<Books> list = booksService.getBookByPage(currentPage,size);
return list;
}