PageHelper分页插件的使用

一、在Maven项目的pom.xml文件中导入PageHelper的jar包依赖
<!-- mybatis-miemiedev依赖 -->
<dependency>
   <groupId>com.github.miemiedev</groupId>
   <artifactId>mybatis-paginator</artifactId>
   <version>1.2.9</version>
</dependency>
<!-- pagehelper依赖 -->
<dependency>
   <groupId>com.github.pagehelper</groupId>
   <artifactId>pagehelper</artifactId>
   <version>5.1.10</version>
</dependency>
二、在applicationContext-dao.xml文件中添加PageHelper的配置(配置Mybatis拦截器插件)
	<!-- 3.配置mybatis框架核心对象SqlSessionFactory -->
	<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
		<!-- 注入数据库连接池 -->
		<property name="dataSource" ref="dataSource"/>

		<!-- 配置MyBaties全局配置文件:mybatis-configure.xml -->
		<property name="configLocation" value="classpath:mybatis/mybatis-configure.xml"/>

		<!-- 配置Mybatis拦截器插件 -->
		<property name="plugins">
			<array>
				<bean class="com.github.pagehelper.PageInterceptor">
					<property name="properties">
						<!-- 使用下面的方式配置参数,一行配置一个 -->
						<value>
							helperDialect=mysql
							reasonable=true
						</value>
					</property>
				</bean>
			</array>
		</property>
	</bean>
三、在数据持久层(dao层),只要定义查询的方法即可(CompanyDao)
/*获取公司的信息*/
List<Company> getCompanyList();
四、编写SQL的映射文件(CompanyDao.xml)
<!-- 获取公司的数据 -->
<select id="getCompanyList" resultMap="BaseResultMap">
   SELECT * FROM `company`
</select>
五、在业务逻辑层(service层),编写查询的方法及使用PageHelper实现分页的方法(CompanyService)
/*获取公司的信息*/
List<Company> findCompanyList();

/*获取公司分页的信息*/
PageInfo<Company> findCompanyByPaging(Integer pageNum, Integer pageSize);
六、在service实现类,封装公司的数据信息(CompanyServiceImpl)
@Override
public PageInfo<Company> findCompanyByPaging(Integer pageNum, Integer pageSize) {
   /*设置起始行数(当前页码),每页显示的数据量*/
   PageHelper.startPage(pageNum, pageSize);

   /*获取公司的信息*/
   List<Company> companyList = companyDao.getCompanyList();

   /*创建pageInfo对象,并封装公司数据*/
   PageInfo<Company> pageInfo = new PageInfo<Company>(companyList);

   /*返回pageInfo对象*/
   return pageInfo;
}
七、在视图表现层(Controller层),实现对数据的处理,并与前端进行交互(CompanyController)
@RequestMapping("/companyList")
public String loadCompany(HttpServletRequest request, @RequestParam(defaultValue = "1") Integer pageNum, @RequestParam(defaultValue = "5") Integer pageSize) {
   /*获取公司分页的数据*/
   PageInfo<Company> pageInfo = companyService.findCompanyByPaging(pageNum, pageSize);

   /*将pageInfo存入请求域中*/
   request.setAttribute("pageInfo", pageInfo);

   /*跳转到company-list.jsp页面*/
   return "company/company-list";
}
八、分页辅助页面(page.jsp)
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<html>
  <body>
    <div class="pull-left">
        <div class="form-group form-inline">
            总共${pageInfo.pages} 页,共${pageInfo.total} 条数据。
        </div>
    </div>
    <div class="box-tools pull-right">
        <ul class="pagination" style="margin: 0px;">
            <li>
                <a href="javascript:goPage(1)" aria-label="Previous">首页</a>
            </li>
            <li><a href="javascript:goPage(${pageInfo.prePage})">上一页</a></li>
            <c:forEach begin="1" end="${pageInfo.pages}" var="i">
                <li class="paginate_button ${pageInfo.pageNum==i ? 'active':''}">
                    <a href="javascript:goPage(${i})">${i}</a>
                </li>
            </c:forEach>
            <li><a href="javascript:goPage(${pageInfo.nextPage})">下一页</a></li>
            <li>
                <a href="javascript:goPage(${pageInfo.pages})" aria-label="Next">尾页</a>
            </li>
        </ul>
    </div>
    <form id="pageForm" action="${param.pageUrl}" method="post">
        <input type="hidden" name="pageNum" id="pageNum">
    </form>
    <script type="text/javascript">
        function goPage(pageNum) {
            $("#pageNum").val(pageNum);
            $("#pageForm").submit();
        }
    </script>
  </body>
</html>
九、公司列表页面信息展示(company-list.jsp)
<%@ page contentType="text/html;charset=UTF-8" language="java"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<c:set var="url" value="${pageContext.request.contextPath}"/>
<%@ include file="../base.jsp"%>
<!DOCTYPE html>
<html>
  <head>
    <!-- 页面meta -->
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <title>企业列表管理</title>
    <!-- Tell the browser to be responsive to screen width -->
    <meta content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no" name="viewport">
    <!-- 页面meta -->
    <script src="../plugins/jQuery/jquery-2.2.3.min.js"></script>
    <script type="text/javascript">
        function deleteById() {
            var id = getCheckId();
            if (id) {
                if (confirm("你确认要删除此条记录吗?")) {
                    location.href="${url}/company/removeCompany?id=" + id;
                }
            } else {
                alert("请勾选待处理的记录,且每次只能勾选一个")
            }
        }
    </script>
  </head>

  <body>
     <div id="frameContent" class="content-wrapper" style="margin-left:0px;">
         <section class="content-header">
             <h1>企业管理<small>企业列表</small>
             </h1>
             <ol class="breadcrumb">
                 <li><a href="all-admin-index.html"><i class="fa fa-dashboard"></i> 首页</a></li>
             </ol>
         </section>
         <!-- 内容头部 /-->
         <!-- 正文区域 -->
         <section class="content">
             <!-- .box-body -->
             <div class="box box-primary">
                 <div class="box-header with-border">
                     <h3 class="box-title">列表</h3>
                 </div>
                 <div class="box-body">
                     <!-- 数据表格 -->
                     <div class="table-box">
                         <!--工具栏-->
                         <div class="pull-left">
                             <div class="form-group form-inline">
                                 <div class="btn-group">
                                     <button type="button" class="btn btn-default" title="新建" style="background-color: #F18A8E" onclick='location.href="${url}/company/toPlusCompany"'><i class="fa fa-file-o"></i> 新建</button>
                                     <button type="button" class="btn btn-default" title="删除" style="background-color: #FCF37E" onclick='deleteById()'><i class="fa fa-trash-o"></i> 删除</button>
                                     <button type="button" class="btn btn-default" title="刷新" style="background-color: #8ED4A2" onclick="window.location.reload();"><i class="fa fa-refresh"></i> 刷新</button>
                                 </div>
                             </div>
                         </div>
                         <div class="box-tools pull-right">
                             <div class="has-feedback">
                                 <input type="text" class="form-control input-sm" placeholder="搜索">
                                 <span class="glyphicon glyphicon-search form-control-feedback"></span>
                             </div>
                         </div>
                         <!--工具栏/-->
                         <!--数据列表-->
                         <table id="dataList" class="table table-bordered table-striped table-hover dataTable" style="background-color: lime">
                             <thead>
                             <tr>
                                 <th class="" style="padding-right:0px;"></th>
                                 <th class="sorting">企业名称</th>
                                 <th class="sorting">所在地</th>
                                 <th class="sorting">地址</th>
                                 <th class="sorting">企业法人</th>
                                 <th class="sorting">联系方式</th>
                                 <th class="sorting">所属行业</th>
                                 <th class="sorting">状态</th>
                                 <th class="sorting">余额</th>
                                 <th class="text-center">操作</th>
                             </tr>
                             </thead>
                             <tbody>
                                 <c:forEach items="${pageInfo.list}" var="company" varStatus="list">
                                     <tr ${list.count % 2 == 0 ? "style='background-color:orangered'" : "style='background-color:red'"}>
                                         <td><input name="ids" value="${company.id}" type="checkbox"></td>
                                         <td>${company.name}</td>
                                         <td>${company.city}</td>
                                         <td>${company.address}</td>
                                         <td>${company.representative}</td>
                                         <td>${company.phone}</td>
                                         <td>${company.industry}</td>
                                         <td>${company.state == 0 ? '未审核' : '已审核'}</td>
                                         <td class="text-center">${company.balance}</td>
                                         <td class="text-center">
                                             <button type="button" class="btn bg-olive btn-xs" onclick='location.href="${url}/company/toUpdateCompany?id=${company.id}"'>编辑</button>
                                         </td>
                                     </tr>
                                 </c:forEach>
                             </tbody>
                         </table>
                     </div>
                 </div>
                 <div class="box-footer">
                     <jsp:include page="../common/page.jsp">
                         <jsp:param value="${url}/company/companyList" name="pageUrl"/>
                     </jsp:include>
                 </div>
             </div>
         </section>
     </div>
  </body>
</html>
十、公司列表信息使用PageHelper分页展示效果
1.公司列表第一页的信息

在这里插入图片描述

2.公司列表第二页的信息

在这里插入图片描述

3.公司列表第三页的信息

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值