ibatis 實現分頁查詢 簡單粗暴
阿新 • • 發佈:2019-02-17
public String getCountQuery() {
return "Cowboys.count";
}
/**
* 分頁查詢記錄
*
* @param statementName
* @param pageRequest
* @return
*/
protected Page pageQuery(String statementName, PageRequest pageRequest) {
//符合條件的總記錄數
Number totalCount = (Number) this.getSqlMapClientTemplate().queryForObject(getCountQuery(),
pageRequest.getFilters());
//分頁物件
Page page = new Page(pageRequest, totalCount.intValue());
// 與getSqlMapClientTemplate().queryForList(statementName,
// parameterObject)配合使用
Map otherFilters = new HashMap();
//頁起始記錄數
otherFilters.put("offset", page.getFirstResult());
//分頁大小
otherFilters.put("pageSize", page.getPageSize());
//頁結束記錄數
otherFilters.put("lastRows", page.getFirstResult() + page.getPageSize());
//排序資訊
otherFilters.put("sortColumns", pageRequest.getSortColumns());
// 混合兩個filters為一個filters,MapAndObject.get()方法將在兩個物件取值,Map如果取值為null,則再在Bean中取值
Map parameterObject = new MapAndObject(otherFilters, pageRequest.getFilters());
//分頁查詢
List list = getSqlMapClientTemplate().queryForList(statementName, parameterObject, page.getFirstResult(),
page.getPageSize());
page.setResult(list);
return page;
}
/**
* 根據頁面查詢條件,取得 WalletMchtInfoReg 表的分頁資訊.
* @param pageRequest 頁面請求引數
* @return WalletMchtInfoReg 表的分頁資訊
*/
public Page findByPageRequest(PageRequest pageRequest) {
return pageQuery("Cowboys.pageSelect", pageRequest);
}