分页插件pagehelper的使用(三步走)
pagehelper是mybatis 提供的分页插件,目前支持Oracle,Mysql,MariaDB,SQLite,Hsqldb,PostgreSQL六种数据库。
1.导jar包(添加pagehelper的依赖)
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>4.1.6</version>
</dependency>
2.配置文件
放到mybatis-config.xml里面
<plugins>
<!-- 配置pagehelper分页插件 -->
<!-- PageHelper4.1.1 -->
<plugin interceptor="com.github.pagehelper.PageHelper">
<property name="dialect" value="mysql" />
<property name="offsetAsPageNum" value="false" />
<property name="rowBoundsWithCount" value="false" />
<property name="pageSizeZero" value="true" />
<property name="reasonable" value="false" />
<property name="supportMethodsArguments" value="false" />
<property name="returnPageInfo" value="none" />
</plugin>
</plugins>
3.调用方法
①controller
要明白前端传入的什么参数,这里写一个全查的方法即可
//全查方法
@RequestMapping("/findAll")
public String findAll(@RequestParam(defaultValue = "1") Integer pageNum, @RequestParam(defaultValue = "3") Integer pageSize, Model m){
//查询分页的数据
PageInfo<Shops> shop = shopsService.findShops(pageNum,pageSize);
m.addAttribute("shop",shop);
return "shoplist";
}
这里传了当前页pageNum,每页的条数pageSize,并给了默认值
调用全查的方法,返回一个PageInfo,并传到前端
(pageInfo里面封装了分页所用到的参数,方法)
②service实现类
@Override
public PageInfo<Shops> findShops(Integer pageNum, Integer pageSize) {
//查询分页数据
PageHelper.startPage(pageNum,pageSize);
//调用全查方法
List<Shops> shops = shopsMapper.findShops();
//封装到pageInfo并返回
PageInfo<Shops> list=new PageInfo<Shops>(shops);
return list;
}