最近再搭建一个springboot+mybatisplus的框架,在做分页的时候老总说要使用pagehelper而不是mybatisplus自带的page,说是性能好,没办法,整合吧
官网地址 https://pagehelper.github.io/
1.pom里面添加 pagehelper的jar
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.2.13</version>
</dependency>
- 在application.properties里面添加
############# 分页插件PageHelper配置 #############
pagehelper.helper-dialect=mysql
pagehelper.reasonable=true
pagehelper.support-methods-arguments=true
pagehelper.pageSizeZero=true
pagehelper.params=count=countSql
3.开始测试
@Test
public void test1() {
int page = 2;
int size = 2;
if (page > 0 && size > 0) {
PageHelper.startPage(page, size); //在查询之前添加这块代码
}
List<User> users = userMapper.selectList(null); //mybatisplus的查询方法
PageInfo<User> list = new PageInfo<>(users); //转换为PageInfo的对象
System.out.println(list);
}
OK,分页成功,但是这个SQL打印有点出乎我的意料,直接在SQL里面进行了分页
再看一下mybatisplus自带的page分页
@Test
public void test1() {
Page<User> page = new Page<>();
page.setCurrent(2);
page.setSize(2);
Page<User> userPage = userMapper.selectPage(page, null);
System.out.println(userPage);
}
再试一下pagehelper和mybatisplus下分页参数为0的情况
@Test
public void test1() {
int page = 0;
int size = 0;
PageHelper.startPage(page, size);
List<User> users = userMapper.selectList(null);
PageInfo<User> list = new PageInfo<>(users);
System.out.println(list);
}
MybatisPlus的
@Test
public void test1() {
Page<User> page = new Page<>();
page.setCurrent(0);
page.setSize(0);
Page<User> userPage = userMapper.selectPage(page, null);
System.out.println(userPage);
}
OK,对比出来了,如果在传参的时候,分页参传没穿,pagehelper的返回结果是有值的,MybatisPlus的则没有
如果大家还知道有什么区别的可以在评论区说说哦