PageHelper 简介

PageHelper是一款mabatis分页插件,但是归根结底的原理还是基于limit关键字进行分页的。

使用方式

  1. 如果是使用的maven方式,只需要按照以下的方式导入坐标即可,版本号可以更改。
  2. 如果是导入jar包的方式,就需要手动下载jar包然后加入到类路径下。
导入坐标
<!--pageHelper Start-->
        <dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper</artifactId>
            <version>4.1.4</version>
        </dependency>

        <dependency>
            <groupId>com.github.jsqlparser</groupId>
            <artifactId>jsqlparser</artifactId>
            <version>0.9.5</version>
        </dependency>
        <!--pageHelper End-->
添加配置

1.如果是使用了spring整合mybatis的方式,只需要找到对应的spring 配置文件,在下面添加如下的pageHelper插件配置即可

    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        
        <!-- PageHelper配置如下 -->
        <property name="plugins">
            <array>
                <bean class="com.github.pagehelper.PageHelper">
                    <!--  如果不配置的话可以不写 -->
                    <property name="properties">
                        <!--使用下面的方式配置参数,可以直接默认不用配置 -->
                        <value>
                        </value>
                    </property>
                </bean>
            </array>
        </property>
    </bean>

前台代码,HTML分页样式代码
                        <!-- 分页进度条 -->
                        <div class="panel-body">
                            <div class="row">
                                <div class="col-md-6" style="line-height: 30px;">
                                    当前第<span class="pageStyle">${pageInfo.pageNum}</span>页
                                    共<span class="pageStyle">${pageInfo.pages}</span>页
                                    总计<span class="pageStyle">${pageInfo.total}</span></div>
                                <div class="col-md-6">
                                    <nav aria-label="Page navigation" class="pull-right">
                                        <ul class="pagination pagination-sm" style="margin: 0px;">
                                            <li>
                                                <a href="${pageContext.request.contextPath}/employee/toList?pageNo=1">首页</a>
                                            </li>
                                            <c:if test="${pageInfo.pageNum==1}">
                                                <li class="disabled">
                                                    <a href="#" aria-label="Previous" class="prePage">
                                                        <span aria-hidden="true">上一页</span>
                                                    </a>
                                                </li>
                                            </c:if>
                                            <c:if test="${pageInfo.pageNum!=1}">
                                                <li>
                                                    <a href="#" aria-label="Previous" class="prePage">
                                                        <span aria-hidden="true">上一页</span>
                                                    </a>
                                                </li>
                                            </c:if>

                                            <c:forEach items="${pageInfo.navigatepageNums}" step="1" var="itemPage">
                                                <c:if test="${pageInfo.pageNum == itemPage}">
                                                    <li class="active">
                                                        <a
                                                                href="${pageContext.request.contextPath}/employee/toList?pageNo=${itemPage}">${itemPage}</a>
                                                    </li>
                                                </c:if>
                                                <c:if test="${pageInfo.pageNum != itemPage}">
                                                    <li>
                                                        <a
                                                                href="${pageContext.request.contextPath}/employee/toList?pageNo=${itemPage}">${itemPage}</a>
                                                    </li>
                                                </c:if>
                                            </c:forEach>

                                            <c:if test="${pageInfo.pageNum == pageInfo.pages}">
                                                <li class="disabled" class="nextPage">
                                                    <a href="#" aria-label="Next">
                                                        <span aria-hidden="true">下一页</span>
                                                    </a>
                                                </li>
                                            </c:if>
                                            <c:if test="${pageInfo.pageNum != pageInfo.pages}">
                                                <li>
                                                    <a href="#" aria-label="Next" class="nextPage">
                                                        <span aria-hidden="true">下一页</span>
                                                    </a>
                                                </li>
                                            </c:if>
                                            <li><a
                                                    href="${pageContext.request.contextPath}/employee/toList?pageNo=${pageInfo.pages}">尾页</a>
                                            </li>
                                        </ul>
                                    </nav>
                                </div>
                            </div>
                        </div>
                    
前台代码,JavaScript分页处理逻辑代码
    <%--分页script--%>
    <!-- 业务处理 -->
    <script type="text/javascript">

        //处理上下页
        $(function () {
            //参数定义 curPage(当前页) totalPages(总页数)
            var curPage = ${ pageInfo.pageNum };
            var totalPages = ${ pageInfo.total };

            //判断是否还存在上一页,是就请求后台
            $(".prePage").click(function () {
                if (curPage > 1) {
                    var pageNo = curPage - 1;
                    $(this).attr("href", "${pageContext.request.contextPath}/employee/toList?pageNo=" + pageNo);
                }
            });
            //判断是否还存在下一页,是就请求后台
            $(".nextPage").click(function () {
                if (curPage < totalPages) {
                    var pageNo = curPage + 1;
                    $(this).attr("href", "${pageContext.request.contextPath}/employee/toList?pageNo=" + pageNo);
                }
            });
        })
    </script>
    <%--分页script--%>
    
后台代码
 @RequestMapping(value = "/toList", method = RequestMethod.GET)
    public String userList(Model model, @RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo) {
        //第一次请求没有页数,所以这里先指定默认第一次请求参数为1

        //startPage为pageHelper默认方法,只需要传入两个参数,一个当前页,一个每页显示条数
        PageHelper.startPage(pageNo, 10);
        //getEmployeeList()为自己定义的查询全部数据
        List<Employee> employees = employeeService.getEmployeeList(); //查询全部数据
        //将查询到的所有数据放入到实现分页PageInfo中实现分页效果
        PageInfo<Employee> pageInfo = new PageInfo<>(employees, 10);

        model.addAttribute("pageInfo", pageInfo);

        return "employee_info/info";
    }
Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐