Mybatis分頁組件Mybatis-PageHelper使用流程java
只須要兩步便可:
1.添加依賴git
<!--PageHelper--> <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId> <version>5.0.3</version> </dependency>
2.在 MyBatis的配置文件mybatis-config.xml中配置攔截器插件github
<plugins> <!-- com.github.pagehelper爲PageHelper類所在包名 --> <plugin interceptor="com.github.pagehelper.PageInterceptor"> <!-- 該參數默認爲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"/> </plugin> </plugins>
3.使用方法安全
在sevice層從新定義方法mybatis
public List<TdUserDto> findByPage(Integer pageNum, Integer pageSize) { PageHelper.startPage(pageNum,pageSize); List<TdUser> tdUserList = userMapper.selectByExample(new TdUserExample()); return mapperFacade.mapAsList(tdUserList, TdUserDto.class); }
PageHelper.startPage(1, 10);//能夠獲取第一頁的10條信息app
只要你能夠保證在 PageHelper 方法調用後緊跟 MyBatis 查詢方法,這就是安全的。由於 PageHelper 在 finally 代碼段中自動清除了 ThreadLocal 存儲的對象。也就是說由PageHelper建立的那一頁信息須要被吃掉。否則下次線程調用就會出問題。插件