1.在pom.xml中导入pagehelper依赖坐标
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.1.2</version>
</dependency>
2.在spring配置文件中传入Mybatis的PageHelper的插件(作为SqlSessionFactory的属性)
<!--创建SqlSessionFactory-->
<bean id="sessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="typeAliasesPackage" value="com.itheima.domain"/>
<!-- 传入Mybatis的PageHelper的插件 -->
<property name="plugins">
<array>
<!-- 传入插件的对象 -->
<bean class="com.github.pagehelper.PageInterceptor">
<property name="properties">
<props>
<!--数据库方言-->
<prop key="helperDialect">oracle</prop>
<prop key="reasonable">true</prop>
</props>
</property>
</bean>
</array>
</property>
</bean>
3.在service层的实现类中返回查询所有语句的上面添加PageHelper.startPage(pageNum,pageSize) 【两者之间不能有任何与操作数据有关的语句,可以存在输出语句】
例如:加粗样式
public List<Product> findAll(Integer pageNum,Integer pageSize) throws Exception {
PageHelper.startPage(pageNum,pageSize);
return productMapper.findAll();
}
4.在web层controller查询所有方法参数中设置默认起始页pageNum和每页数据条数pageSize,将查询到的数据作为pageInfo对象【分页插件里面的类】的有参构造的参数 【返回页面的是pageInfo,不是查询到的数据集合 】
例如:
@RequestMapping("/findAll")
public String findAll(@RequestParam(required = false,defaultValue = "1") Integer pageNum,
@RequestParam(required = false,defaultValue = "4") Integer pageSize,
Model model) throws Exception {
List<Product> productList = productService.findAll(pageNum,pageSize);
PageInfo pageInfo = new PageInfo(productList);
model.addAttribute("pageInfo", pageInfo);
return "product-list";
}
5.web页面上可以通过"${pageInfo.list}"得到"productList ",再遍历集合中的每个元素(product)的属性
例如:
<c:forEach items="${pageInfo.list}" var="product">
<tr>
<td>${product.id}</td>
<td>${product.productNum}</td>
<td>${product.productName}</td>
<td>${product.cityName}</td>
<td>${product.departureTimeStr}</td>
</tr>
</c:forEach>
来源:https://blog.csdn.net/qq_27593683/article/details/102718289