Mybatis阿里雲分頁外掛-PageHelper使用
使用之前要匯入依賴包,這裡要注意PageHelper與mybatis版本的相容性!!!
mybatis版本又要對應mybatis-spring的版本!!!
使用方法:
1.下載PageHelper的jar包,或者直接匯入依賴。
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>4.1.1</version>
</dependency>
樓主使用的是阿里雲的分頁外掛(版本無所謂,你也可以選擇別的版本),原始碼都是中文的,有興趣的可以看看。
Mybatis版本不能低於3.3,否則返回的PageInfo的所有toString引數都為0和null!!!
mybatis的3.4.0及以上版本只支援mybatis-spring1.3.0及以上版本!!!
附上樓主依賴包:
<!-- mybatis版本 -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.1</version>
</dependency>
<!-- mybatis-spring版本 -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.3.1</version>
</dependency>
2.在mybatis的配置檔案 spring-mybatis 中配置PageHelper外掛,因為在spring-mybatis中配置的話
要考慮名稱空間的位置問題,樓主初學還不會改,所以直接又寫了一個spring-mybatis-PageHelper配置檔案,
配置示例:
<?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>
<!-- 配置分頁外掛 -->
<plugins>
<plugin interceptor="com.github.pagehelper.PageHelper">
<!-- 設定資料庫型別 Oracle,Mysql,MariaDB,SQLite,Hsqldb,PostgreSQL六種資料庫-->
<property name="dialect" value="mysql"/>
</plugin>
</plugins>
</configuration>
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
現在配置就完成了,可以直接寫程式碼測試了。
3.dao包和service方法都不變,mapper語句樓主測試用的所以用的最簡單的
<select id="listDepts" resultType="Dept">
select * from department
</select>
測試程式碼如下:
@Test
public void testListDepts() {
PageHelper.startPage(1, 3);
List<Dept> list = deptService.listDepts();
PageInfo<Dept> info = new PageInfo<Dept>(list);
}
PageHelper只對緊跟著的第一個SQL語句起作用,也就是service的查詢方法。
至此分頁就出來了,超級簡單,PageInfo是PageHelper包裡面封裝好的類,很詳細。
具體處理流程,可以看原始碼,樓主剛開始用這個分頁的時候,因為版本不對,一直沒有分頁資料,找了半天,因為是第一次用,所以...,後來才想起來會不會是版本的問題,在百度搜了10多個說mybatis的都沒有說到版本的相容問題。所以發這個,希望能給遇到同樣問題的一個解決方案。
mysql有limit分頁,樓主是自己用limit寫完一個分頁處理之後,才來用外掛的,加深瞭解。