1. 程式人生 > 程式設計 >Mybatis pagehelper分頁外掛使用過程解析

Mybatis pagehelper分頁外掛使用過程解析

這篇文章主要介紹了mybatis pagehelper分頁外掛使用過程解析,文中通過示例程式碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

使用過mybatis的人都知道,mybatis本身就很小且簡單,sql寫在xml裡,統一管理和優化。缺點當然也有,比如我們使用過程中,要使用到分頁,如果用最原始的方式的話,1.查詢分頁資料,2.獲取分頁長度,也就是說要使用到兩個方法才能完成分頁。有沒有更更好的分頁方式的,pagehelper分頁外掛因此而誕生,他的原理是利用mybatis攔截器,在查詢資料庫的時候,攔截下SQL,然後進行修改,從而實現分頁(如果你硬是想知道原理,mybatis攔截器,學習過後你就知道什麼回事了)。

這篇部落格先向大家展示怎麼使用,過後有時間再講他的實現原理。

1.新增maven依賴

 <dependency>
  <groupId>com.github.pagehelper</groupId>
  <artifactId>pagehelper</artifactId>
  <version>5.0.0</version>
 </dependency>

2.在 Spring 配置檔案中配置攔截器外掛,也可以在mybatis的xml裡面配置,但是兩種配置不能同時出現,否則容易出現com.github.pagehelper.PageInterceptor外掛出現空指標問題

在spring.xml中定義:

<!--配置SqlSessionFactory物件 -->
  <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
    <property name="dataSource" ref="dataSource" />
    <property name="configLocation" value="classpath:mybatis-config.xml" />
    <property name="typeAliasesPackage" value="com.aoChine.model.entity" />
    <property name="mapperLocations" value="classpath:mapper/*.xml" />

    <!-- 配置mybatis分頁外掛PageHelper -->
    <property name="plugins">
      <array>
        <bean class="com.github.pagehelper.PageInterceptor">
          <property name="properties">
            <!-- 什麼都不配,使用預設的配置 -->
            <value></value>
          </property>
        </bean>
      </array>
    </property>
  </bean>

在mybatis-config.xml中定義

<plugins>
    <!-- com.github.pagehelper為PageHelper類所在包名 -->
    <plugin interceptor="com.github.pagehelper.PageInterceptor">
      <!-- 使用MySQL方言的分頁 -->
      <property name="helperDialect" value="sqlserver"/><!--如果使用mysql,這裡value為mysql-->
      <property name="pageSizeZero" value="true"/>
    </plugin>
 </plugins>

3.使用

a)寫正常查詢語句的介面

Mybatis pagehelper分頁外掛使用過程解析

介面:

Mybatis pagehelper分頁外掛使用過程解析

b)在service層呼叫介面,實現分頁。

Mybatis pagehelper分頁外掛使用過程解析

分頁外掛使用這樣就使用完畢了,部落格只是介紹了最簡單的使用方法,如果需要了解更多內容

這個是開源社群上面的外掛庫地址:

https://github.com/pagehelper/Mybatis-PageHelper/blob/master/README_zh.md

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。