SSM 框架下 使用 EasyUI 整合 PageHelper 實現分頁
準備條件
1 .引入pageHelper 依賴包
<!-- 分頁外掛 -->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>4.0.0</version>
</dependency>
2.mybatis 主配置檔案中加入如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
<!-- mybatis 的主配置檔案 -->
<configuration>
<!-- <typeAliases>
<typeAlias type="User" alias="user"/>
</typeAliases> -->
<plugins>
<!-- com.github.pagehelper為PageHelper類所在包名 -->
<plugin interceptor="com.github.pagehelper.PageHelper">
<property name="dialect" value="mysql"/>
<!-- 該引數預設為false -->
<!-- 設定為true時,會將RowBounds第一個引數offset當成pageNum頁碼使用 -->
<!-- 和startPage中的pageNum效果一樣-->
<property name="offsetAsPageNum" value="true"/>
<!-- 該引數預設為false -->
<!-- 設定為true時,使用RowBounds分頁會進行count查詢 -->
<property name="rowBoundsWithCount" value="true"/>
<!-- 設定為true時,如果pageSize=0或者RowBounds.limit = 0就會查詢出全部的結果 -->
<!-- (相當於沒執行分頁查詢,但是返回結果仍然是Page型別-->
<property name="pageSizeZero" value="true"/>
<!-- 3.3.0版本可用 - 分頁引數合理化,預設false禁用 -->
<!-- 啟用合理化時,如果pageNum<1會查詢第一頁,如果pageNum>pages會查詢最後一頁 -->
<!-- 禁用合理化時,如果pageNum<1或pageNum>pages會返回空資料 -->
<property name="reasonable" value="false"/>
<!-- 3.5.0版本可用 - 為了支援startPage(Object params)方法 -->
<!-- 增加了一個`params`引數來配置引數對映,用於從Map或ServletRequest中取值 -->
<!-- 可以配置pageNum,pageSize,count,pageSizeZero,reasonable,不配置對映的用預設值 -->
<!-- 不理解該含義的前提下,不要隨便複製該配置 -->
<!-- <property name="params" value="pageNum=start;pageSize=limit;"/> -->
</plugin>
</plugins>
</configuration>
3.spring 整合mybatis (載入mybatis 主配置檔案)
<!-- Spring整合MyBatis框架 -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="configLocation" value="classpath:/mybatis/mybatis-config.xml"></property>
<property name="dataSource" ref="dataSource"></property>
<property name="mapperLocations">
<list>
<!-- classpath* 表示從依賴的專案打的jar包中進行掃描,載入配置,不加*表示從當前專案類路徑進行載入配置檔案。 -->
<value>classpath*:/mybatis/mapper-*.xml</value>
</list>
</property>
<property name="typeAliasesPackage" value="com.atguigu.collect.bean"></property>
</bean>
4.Controller 層實現方法
例項方法
//多條件查詢的方法
@RequestMapping("getEmpInfoList")
@ResponseBody
public HashMap<String, Object> searchConditionsEmp(
String status,String orgId,
String id,String loginName,
@RequestParam("page") Integer pageNum,
@RequestParam("rows") Integer rows){
//防止 引數值為 空字串 "" mybatis 中無法識別的囧境遇
Map<String,Object> map = new HashMap<String,Object>();
map.put("status", "".equals(status)?null:status);
map.put("orgId", "".equals(orgId)?null:orgId);
map.put("id", "".equals(id)?null:id);
map.put("loginName", "".equals(loginName)?null:loginName);
//分頁所需的資料
map.put("rows", rows);
map.put("pageNum", pageNum);
//將 當前頁碼 每頁顯示條數 放入 到pageHelper 中
PageHelper.startPage(pageNum, rows);
//查詢所記錄的方法(此句 在mybaits 查詢語句中不要在加入 limt pageHelper 會自動注入)
List<EmployeeInfo> empInfoList = employeeInfoService.getEmpInfoList(map);
//呼叫需要分頁處理的 執行方法(會在SQL 語句中自動加入 limit )
PageInfo pageInfo = new PageInfo(empInfoList);
//獲取總記錄數
long total = pageInfo.getTotal();
//封裝獲取到的分頁資料 封裝成分頁外掛所需要的格式
HashMap<String, Object> jsonMap = new HashMap<String, Object>();
jsonMap.put("total", total);
jsonMap.put("rows", empInfoList);
return jsonMap;
}
5.前端easyui整合 分頁
<!-- 列表部分 -->
<div id="tables">
<table id ="empInfodg" class="easyui-datagrid" style="width:100%;height:250px"
pagination='true' rownumbers='true'(加入兩個屬性 datagrid 會自動加入分頁外掛)
data-options="url:'getEmpInfoList.do',fitColumns:true,singleSelect:true">
<thead>
<tr>
<th data-options="field:'ck',checkbox:true"></th>
<th data-options="field:'status'">員工狀態</th>
<th data-options="field:'id' ,width:60">賬號</th>
<th data-options="field:'loginName',width:60">姓名</th>
<th data-options="field:'sex',width:60,align:'right'">性別</th>
<th data-options="field:'joinTime',width:60">入職時間</th>
<th data-options="field:'positionId',width:60">崗位</th>
<th data-options="field:'orgId',width:60,align:'right'">機構</th>
<th data-options="field:'createTime',width:60">錄入時間</th>
<th data-options="field:'modifyTime',width:60">修改時間</th>
</tr>
</thead>
</table>
</div>