1. 程式人生 > >mybatis之引入分頁外掛

mybatis之引入分頁外掛

一: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());
}