1. 程式人生 > >MyBatis分頁組件--PageHelper

MyBatis分頁組件--PageHelper

公眾 cat 類別 pen version 返回值 演示 plugin ldb

一.介紹

  PageHelper是國內非常優秀的一款開源的 mybatis 分頁插件,它支持基本主流與常用的數據庫,例如 Oracle、Mysql、MariaDB、SQLite、Hsqldb 等。

官網網址:https://pagehelper.github.io/

GitHub地址:https://github.com/pagehelper/Mybatis-PageHelper

How To Use:https://github.com/pagehelper/Mybatis-PageHelper/blob/master/wikis/en/HowToUse.md

二.基本使用

1.第一步:導入Maven坐標

<!--
集中定義依賴版本號 --> <properties> <pagehelper.version>5.1.2</pagehelper.version> </properties> <dependencies> <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId> <
version>${pagehelper.version}</version> </dependency> </dependencies>

2.第二步:在Spring配置文件中配置攔截器插件

applicationContext-dao.xml

<!-- 配置sqlSessionFactory -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
    <property name="dataSource"
ref="dataSource"/> <!-- 配置實體類別名 --> <property name="typeAliasesPackage" value="cn.dintalk.domain"/> <!-- 配置pageHelper分頁的插件 --> <property name="plugins"> <array> <bean class="com.github.pagehelper.PageInterceptor"> <!-- 這裏的幾個配置主要演示如何使用,如果不理解,一定要去掉下面的配置 --> <property name="properties"> <value> <!-- 可區分數據庫 --> helperDialect=mysql <!-- 是否合理分頁,針對首頁尾頁越界 --> reasonable=true </value> </property> </bean> </array> </property> </bean>

Tips: helperDialect:分頁插件自定檢測當前的數據庫連接,選擇合適的分頁方式,可配置helperDialect屬性來指定分頁插件使用哪種方言,可使用以下縮寫值:oracle, mysql, mariadb, sqlite,等等。還有其他的配置,需要時請查閱官方文檔。

3.第三步:service層分頁

PageHelper的基本使用有6種,可見官方文檔。這裏介紹PageHelper.startPage的靜態方法。

dao層代碼

// 查詢所有
List<Company> findAll();

dao層映射.xml

<!-- 查詢所有 -->
<select id="findAll" resultMap="baseResultMap">
    select * from sh_company
</select>

service層代碼

//使用PageHelper分頁查詢,page:當前頁面,size:每頁顯示數量
public PageInfo findPageByHelper(int page, int size) {
    //1.調用靜態方法,開始分頁
    PageHelper.startPage(page,size);
    //2.照常調用
    List<Company> companies = companyDao.findAll();
    return new PageInfo(companies);
}

Tips: 在需要分頁的MyBatis查詢方法前調用 PageHelper.startPage 靜態方法即可。格外需要註意的是:(緊跟在這個方法後的第一個MyBatis查詢方法或被進行分頁),因此在使用的時候留意順序。

  • 返回值PageInfo中包含了分頁頁面所需的一切信息,包括展示的數據及頁碼、上一頁等等。在頁面取值的時候可以跟到PageInfo源碼中查看清楚即可!

關註微信公眾號,隨時隨地學習

技術分享圖片

MyBatis分頁組件--PageHelper