mybatis之引入分頁外掛
阿新 • • 發佈:2018-12-19
一:PageHelper的maven座標
<!--分頁工具類-->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
</dependency>
<dependency>
<groupId>com.github.jsqlparser</groupId>
<artifactId>jsqlparser</artifactId>
</dependency>
二:在mybatis配置檔案中增加外掛配置
<plugins>
<!-- 配置分頁助手的外掛 -->
<plugin interceptor="com.github.pagehelper.PageHelper">
<!-- 指定資料庫方言 -->
<property name="dialect" value="mysql"/>
<!-- 設定為true時,查詢結果中會查詢出總條數資訊 -->
<property name="rowBoundsWithCount" value="true"/>
</plugin>
</plugins>
三:分頁查詢
分頁查詢需要當前頁和每頁大小兩個引數,通過PageHelper.setPage方法將引數設定進去,jsqlparser會在sql執行前攔截sql進行分頁拼接,如果指定方言是mysql則是limit xx,xx,所以mybatis在自定義sql語句中的末尾儘量不要增加分號;否則拼接的sql語句會有錯誤。
下面附上一個分頁方法案例:
/** * 分頁查詢品牌 * @param pageNum:當前頁數 * @param pageSize:每頁大小 * @return:分頁結果集 */ @Override public PageResult findPage(int pageNum, int pageSize,TbBrand tbBrand) { PageHelper.startPage(pageNum,pageSize); TbBrandExample example = new TbBrandExample(); if(tbBrand != null){ TbBrandExample.Criteria criteria = example.createCriteria(); if(StringUtils.isNotEmpty(tbBrand.getName())){ criteria.andNameLike("%"+tbBrand.getName()+"%"); } if(StringUtils.isNotEmpty(tbBrand.getFirstChar())){ criteria.andFirstCharLike("%"+tbBrand.getFirstChar()+"%"); } } Page<TbBrand> page = (Page<TbBrand>) brandMapper.selectByExample(example); return new PageResult(page.getTotal(),page.getResult()); }