文章目录
1、声明使用范围
mybatis-plus的分页好像只能配合自己写的方法,比如说在Mapper接口文件,一般会继承一个BaseMapper类,BaseMapper文件里面的方法我没法使用mybatis-plus自带的分页方式,但是可以用pagehelper工具去分类。
2、注册一个分页需要的配置类
代码为(写到任何一个@Configuration文件下都型),如果没有这个一定会分页失败,我已经试了
/**
* 分页插件
* @return
*/
@Bean
public PaginationInterceptor paginationInterceptor() {
return new PaginationInterceptor();
}
3、我的mapper文件
@Mapper
public interface BookMapper extends BaseMapper<Book> {
@Select("SELECT *" +
"FROM book" )
IPage<Book> ceshi(Page<Book> page);
//@Param(Constants.WRAPPER) Wrapper<Book> wrapper是为了传入条件
// IPage<Book> ceshi(Page<Book> page, @Param(Constants.WRAPPER) Wrapper<Book> wrapper);
}
4、我的server文件
public IPage<Book> ceshi(){
//直接设置,页数为1,每页大小为5
Page<Book> page=new Page<>(1,5);
IPage<Book> iPage=mapper.ceshi(page);
return iPage;
}
5、我的controller文件
@GetMapping("/ceshi")
public ResultVo ceshi(){
return ResultUtils.success("获取成功",ceshiServer.ceshi());
}
6、分页成功
后台打印出来的sql语句是(属于物理分页)
Preparing: SELECT *FROM book LIMIT ?,?
==> Parameters: 0(Long), 5(Long)
7、自己直接写一个sql语句分页,用limit(物理分页)
得到的是第一条和第二条记录,0表示索引值(第一条记录的索引值为0),2表示取出的记录数量(一条记录一行)
SELECT *
FROM blog
LIMIT 0,2
得到的是第二条和第三条记录
SELECT *
FROM blog
LIMIT 1,2
8、总结
分页的主要方式就是靠PaginationInterceptor 、IPage、Page这三个类的配合。
如果需要使用mybatis-plus自带的方法,配合pagehelper工具可以看另一个博客PageHelper类(pagehelper工具)的分页方式与使用