1. 程式人生 > >Mybatis阿里雲分頁外掛-PageHelper使用

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寫完一個分頁處理之後,才來用外掛的,加深瞭解。