在ssm+maven框架中使用pageHelper插件

前言

在學習中,遇到要使用pageHelper插件,所以記錄一下該插件的簡單使用步驟。

第一步、在pom文件中引入jar包

最好引用最新jar包,因爲最新版本會更新一些bug或者優化,讓插件更好用

<pagehelper.version>4.1.6</pagehelper.version>

<dependencyManagement>
		<dependencies>
			<dependency>
				<groupId>com.github.pagehelper</groupId>
				<artifactId>pagehelper</artifactId>
				<version>${pagehelper.version}</version>
			</dependency>
	</dependencies>
</dependencyManagement>

第二步、在SqlMapConfig.xml中配置插件

如果沒有配置的話,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>

在查詢的sql語句執行之前,添加代碼設置page、rows

page:表示要顯示第幾頁。
rows:表示每頁顯示的記錄數。

通過下面的代碼設置:

// 設置分頁參數,進行分頁處理
PageHelper.startPage(page, rows);
// 查詢,下一個查詢的頁面參數將不再生效,需要再一次設置page、rows
List<TbItem> items = tbItemMapper.selectByExample(example);

下一個查詢的頁面參數將不再生效,如果需要分頁,那就要再一次設置page、rows

第四步、取查詢結果的詳細信息

通過創建一個PageInfo類的對象,從對象中取分頁信息
(舊版本pageHelper的jar包不包含這個對象,故建議用新版本jar包= =!)

// 獲得查詢結果的詳細信息
PageInfo<TbItem> pageInfo = new PageInfo<>(items);

在這裏插入圖片描述

注意:
分頁插件對逆向工程生成的代碼支持不好,原來使用的是(3.4.2版本),發現對有查詢條件的查詢分頁,會拋異常。
但是後來使用4.1.6版本,就可以支持有查詢條件的查詢分頁了。

總結

  1. 實現流程:實際插件是對mybatis執行流程進行了增強,在執行sql語句中添加了limit以及count語句,屬於物理分頁
    在這裏插入圖片描述

  2. 思考問題:
    pageHelper還有很多需要學習的地方,本文只是單純記錄一下基本使用。
    後面還需要思考更多問題,比如PageHelper.startPage(page, rows); 之後接上一個select查詢就能實現分頁,爲什麼不會影響到其他查詢;還可以考慮分頁安全性問題。有挺多蠻值得學習的。

拓展:
PageHelper簡單使用
PageHelper4.1.6的使用

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章