java專案使用pageHelper做分頁
阿新 • • 發佈:2018-12-26
1,maven引入pageHelper依賴
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>4.0.0</version>
</dependency>
2,mybatis整合pageHelper配置檔案
mybatis配置檔案
<!-- spring整合MyBatis --> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource" /> <!-- 引入pageHelper配置檔案 --> <property name="configLocation" value="classpath:SqlMapConfig.xml"/> <!-- 自動掃描mapping.xml檔案 --> <property name="mapperLocations" value="classpath:com/sunadver/jimitd/mapping/*.xml"></property> </bean>
SqlMapConfig.xml配置檔案
<?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"> <!-- 配置管理器 --> <configuration> <!-- 全域性setting配置,根據需要新增 --> <!-- 配置別名 --> <typeAliases> <!-- 批量掃描別名,type寫要分頁查詢的物件的路徑 --> <typeAlias type="org.xxx.xxx.xxx" alias="Orders" /> </typeAliases> <!-- 配置mapper 由於使用spring和mybatis的整合包進行mapper掃描,這裡不需要配置了。 必須遵循:mapper.xml和mapper.java檔案同名且在一個目錄 --> <plugins> <!-- com.github.pagehelper為PageHelper類所在包名 --> <plugin interceptor="com.github.pagehelper.PageHelper"> <!-- 4.0.0以後版本可以不設定該引數 --> <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="true"/> <!-- 3.5.0版本可用 - 為了支援startPage(Object params)方法 --> <!-- 增加了一個`params`引數來配置引數對映,用於從Map或ServletRequest中取值 --> <!-- 可以配置pageNum,pageSize,count,pageSizeZero,reasonable,orderBy,不配置對映的用預設值 --> <!-- 不理解該含義的前提下,不要隨便複製該配置 --> <property name="params" value="pageNum=start;pageSize=limit;"/> <!-- 支援通過Mapper介面引數來傳遞分頁引數 --> <property name="supportMethodsArguments" value="true"/> <!-- always總是返回PageInfo型別,check檢查返回型別是否為PageInfo,none返回Page --> <property name="returnPageInfo" value="check"/> </plugin> </plugins> </configuration>
3,頁面設定pageNum與pageSize引數
<script> $(function() { /* * 查詢所有人 */ $("#search_button").click(function() { var pageNum = "1"; var pageSize = "10"; var ordId = $("#ordId").val(); var tel = $("#tel").val(); var uname = $("#uname").val(); var delivery_id = $("#way").val(); queryAllPerson(pageNum, pageSize); }); }); function queryAllPerson(pageNum, pageSize){ var ordId = $("#ordId").val(); var tel = $("#tel").val(); var uname = $("#uname").val(); var delivery_id = $("#way").val(); $("#pagehelper_id").html("資料正在玩命載入中......"); $("#pagehelper_id").load("${pageContext.request.contextPath}/order/queryOrderList?pageNum="+pageNum+ "&pageSize="+pageSize+"&uname="+uname+"&tel="+tel+"&ordId="+ordId+"&delivery_id="+delivery_id); } </script>
4,後臺控制器程式碼
@RequestMapping("/queryOrderList")
public String queryOrderList(HttpServletRequest request, Model model, HttpSession session) {
try {
String pageNum = request.getParameter("pageNum"); // 頁數
String pageSize = request.getParameter("pageSize"); // 每頁顯示條數
/****************** 多條件 *****************************/
String oid = request.getParameter("ordId");
String tel = request.getParameter("tel");
String uname = request.getParameter("uname");
String parameter = request.getParameter("delivery_id");
Map<String, Object> map = new HashMap<String, Object>();
if ((parameter.equals("1")) || (parameter.equals("2"))) {
int delivery_id = Integer.parseInt(parameter);
map.put("deliveryId", delivery_id);
}
map.put("ordId", oid);
map.put("name", uname);
map.put("tel", tel);
/******************** 分頁查詢 ***********************/
int num = 1;
int size = 10;
if (pageNum != null && !"".equals(pageNum)) {
num = Integer.parseInt(pageNum);
}
if (pageSize != null && !"".equals(pageSize)) {
size = Integer.parseInt(pageSize);
}
// pageHelper分頁查詢物件
PageHelper.startPage(num, size);
List<Orders> orderList = orderService.selectOrderListandUserItems(map);
PageInfo<Orders> pagehelper = new PageInfo<Orders>(orderList);
model.addAttribute("pagehelper", pagehelper);
return "olist";
} catch (Exception e) {
return "login";
}
}
5,order.xml對映檔案不在貼上根據自己實際情況來做條件查詢就可以了,到此基本完成