mybatis 分頁插件PageHelper的簡單使用


首先在pom.xml配置文件中增加相關的插件。

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

1        <dependency>
2             <groupId>com.github.pagehelper</groupId>
3             <artifactId>pagehelper</artifactId>
4             <version>5.1.7</version>
5         </dependency>

 新建一個mybatis-config.xml 的文件:

 1 <?xml version="1.0" encoding="UTF-8" ?>
 2 <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
 3 
 4 <configuration>
 5     <settings>
 6         <!-- 使用jdbc的getGeneratedKeys獲取數據庫自增主鍵值 -->
 7         <setting name="useGeneratedKeys" value="true" />
 8         <!-- 使用列別名替換列名 默認:true -->
 9         <setting name="useColumnLabel" value="true" />
10         <!-- 開啟駝峰命名轉換:Table {create_time} -> Entity {createTime} -->
11         <setting name="mapUnderscoreToCamelCase" value="true" />
12     </settings>
13     <!--配置分頁插件-->
14     <plugins>
15         <plugin interceptor="com.github.pagehelper.PageInterceptor" />
16     </plugins>
17 
18 </configuration>

加載mybatis-config.xml文件。

調用:

調用PageHelper插件的方法,它只會對下面的一行代碼起作用。

第一個參數是頁數,第二個參數是條數,簡單來說就是每一頁有幾條數據。

1、這是一種物理分頁(就是直接通過SQL進行在數據庫中直接分頁,得到的數據就是我們想要分頁之后的數據),假設你使用的是mysql數據庫,在執行查詢語氣的時候,它會自動的在sql語法后面加 limit 

 物理分頁:內存開銷比較小,在數據量比較小的情況下效率比邏輯分頁還是低,在數據量很大的情況下,建議使用物理分頁

測試:

select 語法:

測試類:

打印出來的日志:

(通過日志,第4行,我們可以看出,當我們使用PageHelper.startPage這種物理方法的時候,它是自動在我調用的select后面加上了limit進行了分頁查詢)

1 09:05:37.911 [main] DEBUG com.oukele.dao.CommodityMapper.selectAll_COUNT - ==>  Preparing: SELECT count(0) FROM commodity c LEFT JOIN stock s ON c.stock_id = s.stock_id LEFT JOIN commodity_company cp ON c.commodity_company_id = cp.commodity_company_id 
2 09:05:37.943 [main] DEBUG com.oukele.dao.CommodityMapper.selectAll_COUNT - ==> Parameters: 
3 09:05:38.142 [main] DEBUG com.oukele.dao.CommodityMapper.selectAll_COUNT - <==      Total: 1
4 09:05:38.145 [main] DEBUG com.oukele.dao.CommodityMapper.selectAll - ==>  Preparing: select * from commodity c left join stock s on c.stock_id = s.stock_id left join commodity_company cp on c.commodity_company_id=cp.commodity_company_id LIMIT ? 
5 09:05:38.146 [main] DEBUG com.oukele.dao.CommodityMapper.selectAll - ==> Parameters: 3(Integer)
6 09:05:38.230 [main] DEBUG com.oukele.dao.CommodityMapper.selectAll - <==      Total: 3

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM