官方文档地址https://pagehelper.github.io/
使用步骤:
1. 在maven中添加坐标
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.1.10</version>
</dependency>
2. 编写配置文件
官方示例:
我的配置方法:
<!--配置SqlSessionFactory对象-->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"></property>
<!--指定映射文件的位置-->
<property name="mapperLocations">
<list>
<value>classpath:/mapper/**/*.xml</value>
</list>
</property>
<!--配置mybatis的pagehelper分页插件-->
<property name="plugins">
<array>
<bean class="com.github.pagehelper.PageInterceptor"></bean>
</array>
</property>
</bean>
3. 在表现层controller中使用
官方推荐:
//第一种,RowBounds方式的调用
List<Country> list = sqlSession.selectList("x.y.selectIf", null, new RowBounds(0, 10));
//第二种,Mapper接口方式的调用,推荐这种使用方式。
PageHelper.startPage(1, 10);
List<Country> list = countryMapper.selectIf(1);
//第三种,Mapper接口方式的调用,推荐这种使用方式。
PageHelper.offsetPage(1, 10);
List<Country> list = countryMapper.selectIf(1);
我的方法:
@Controller
public class EmpolyeeController {
@Autowired
EmpolyeeService empolyeeService;
@RequestMapping("/emps")
public String getEmpls(@RequestParam(value = "pageNumber", defaultValue = "1") Integer pageNumber,
Model model) {
//引入PageHelper分页插件
//在查询之前只需要调用,传入页码以及每一页的大小
PageHelper.startPage(pageNumber, 5);
//后面紧跟的查询就是一个分页查询
List<Employee> emps = empolyeeService.getAll();
//用PageInfo对结果进行包装,PageInfo包含了非常全面的分页属性,只需要将此对象传给页面
//可以设置连续显示的页数
PageInfo page = new PageInfo(emps,5);
model.addAttribute("pageInfo", page);
return "list";
}
}
PageInfo包含了非常全面的分页属性
//获取第1页,10条内容,默认查询总数count
PageHelper.startPage(1, 10);
List<Country> list = countryMapper.selectAll();
//用PageInfo对结果进行包装
PageInfo page = new PageInfo(list);