pageHelper分页实现步骤

人盡茶涼 提交于 2019-12-02 05:04:41

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>
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!