Springboot整合mybatis-plus使用pageHelper進行分頁(使用步驟)
PageHelper 使用步驟全解析
在進行 Web 應(yīng)用開發(fā)時,經(jīng)常會涉及到數(shù)據(jù)庫數(shù)據(jù)的分頁展示。PageHelper 是一個非常實用的 MyBatis 分頁插件,它能夠方便地實現(xiàn)數(shù)據(jù)庫查詢結(jié)果的分頁功能,極大地提高了開發(fā)效率。以下將簡單介紹 PageHelper 的使用步驟。
一、引入依賴
Maven 項目
如果你的項目是基于 Maven 構(gòu)建的,需要在項目的pom.xml
文件中添加 PageHelper 的依賴項。
<!--pagehelper分頁插件--> <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper-spring-boot-starter</artifactId> <version>1.4.0</version> </dependency>
Gradle 項目
對于 Gradle 項目,在build.gradle
文件中添加以下依賴:
implementation 'com.github.pagehelper:pagehelper-spring-boot-starter:1.4.0'
二、配置 PageHelper
- 如果是 Spring Boot 項目,在
application.properties
或application.yml
文件中進行配置。以application.yml
為例:
pagehelper: helper-dialect: mysql # 指定數(shù)據(jù)庫方言,這里以MySQL為例 reasonable: true # 分頁合理化,如果pageNum<1會查詢第一頁,如果pageNum>pages會查詢最后一頁 support-methods-arguments: true # 支持通過Mapper接口參數(shù)傳遞分頁參數(shù) params: count=countSql # 用于從對象中根據(jù)屬性名取值,這里配置count的SQL
這些參數(shù)的詳細解釋如下:
helper-dialect
: 指定分頁插件的數(shù)據(jù)庫方言。PageHelper會自動檢測當(dāng)前的數(shù)據(jù)庫鏈接,自動選擇合適的分頁方式。如果你使用的是MySQL,可以明確指定為mysql
。reasonable
: 是否啟用分頁合理化。如果啟用,當(dāng)pageNum<1
時,會自動查詢第一頁的數(shù)據(jù),當(dāng)pageNum>pages
時,自動查詢最后一頁數(shù)據(jù);不啟用的情況下,以上兩種情況都會返回空數(shù)據(jù)。support-methods-arguments
: 是否支持通過Mapper接口參數(shù)來傳遞分頁參數(shù),默認值false
。設(shè)置為true
時,PageHelper會從查詢方法的參數(shù)值中自動根據(jù)配置的字段取值,進行分頁。params
: 用于從對象中根據(jù)屬性名取值,可以配置pageNum
,pageSize
,count
,pageSizeZero
,reasonable
等參數(shù)。這里的count=countSql
表示在執(zhí)行分頁查詢時,會使用countSql
作為計算總數(shù)的SQL。
三、在代碼中使用 PageHelper
1.簡單分頁查詢
假設(shè)我們有一個用戶表(user
),要查詢并分頁展示用戶信息。首先,在對應(yīng)的 Mapper 接口中定義查詢方法:
import com.example.entity.User; import java.util.List; public interface UserMapper { @Select("SELECT * FROM user") List<User> selectAllUsers(); }
然后,在 Service 層或調(diào)用 Mapper 的地方使用 PageHelper 進行分頁查詢,示例代碼如下:
import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.example.mapper.UserMapper; import com.example.entity.User; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; @Service public class UserService { @Autowired private UserMapper userMapper; public PageInfo<User> getUserList(int pageNum, int pageSize) { // 設(shè)置分頁參數(shù),pageNum為當(dāng)前頁碼,pageSize為每頁顯示的記錄數(shù) PageHelper.startPage(pageNum, pageSize); // 執(zhí)行查詢 List<User> userList = userMapper.selectAllUsers(); // 使用PageInfo對查詢結(jié)果進行包裝,返回包含分頁信息的對象 return new PageInfo<>(userList); } }
在上述代碼中,PageHelper.startPage(pageNum, pageSize)
方法用于設(shè)置分頁參數(shù),告訴 PageHelper 要查詢第幾頁以及每頁顯示多少條記錄。然后執(zhí)行查詢操作,PageHelper 會自動對查詢語句進行分頁處理,最后將查詢結(jié)果包裝成PageInfo
對象返回。PageInfo
對象包含了分頁相關(guān)的各種信息,如總記錄數(shù)、總頁數(shù)、當(dāng)前頁碼、每頁記錄數(shù)等,方便在前端進行分頁展示和相關(guān)邏輯處理。
2.帶條件的分頁查詢
如果查詢需要帶條件,例如根據(jù)用戶姓名進行模糊查詢并分頁。首先在 Mapper 接口中定義帶條件的查詢方法:
import com.example.entity.User; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; import java.util.List; @Mapper public interface UserMapper { @Select("SELECT * FROM user WHERE user_name LIKE #{name}") List<User> selectUsersByName(@Param("name") String name); }
在 Service 層實現(xiàn)帶條件的分頁查詢,代碼如下:
import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.example.mapper.UserMapper; import com.example.entity.User; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; @Service public class UserService { @Autowired private UserMapper userMapper; public PageInfo<User> getUserListByName(String name, int pageNum, int pageSize) { // 設(shè)置分頁參數(shù) PageHelper.startPage(pageNum, pageSize); // 執(zhí)行帶條件的查詢 List<User> userList = userMapper.selectUsersByName("%" + name + "%"); // 返回分頁信息對象 return new PageInfo<>(userList); } }
這樣我們就能簡單的使用pageHelper的分頁功能 ,詳細的使用可以參考文檔如何使用分頁插件
到此這篇關(guān)于Springboot整合mybatis-plus使用pageHelper進行分頁的文章就介紹到這了,更多相關(guān)Springboot整合mybatis-plus分頁內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- SpringBoot同時集成Mybatis和Mybatis-plus框架
- SpringBoot+MyBatis-Plus實現(xiàn)分頁示例
- SpringBoot+MyBatis-Plus實現(xiàn)分頁的項目實踐
- springboot集成mybatis-plus全過程
- Springboot集成Mybatis-plus、ClickHouse實現(xiàn)增加數(shù)據(jù)、查詢數(shù)據(jù)功能
- springboot項目中mybatis-plus@Mapper注入失敗問題
- springboot+mybatis-plus實現(xiàn)自動建表的示例
- SpringBoot中使用MyBatis-Plus實現(xiàn)分頁接口的詳細教程
- SpringBoot?mybatis-plus使用json字段實戰(zhàn)指南
- springboot3.2整合mybatis-plus詳細代碼示例
- 全網(wǎng)最新springboot整合mybatis-plus的過程
相關(guān)文章
AsyncHttpClient?ChannelPool線程池頻道池源碼流程解析
這篇文章主要為大家介紹了AsyncHttpClient ChannelPool線程池頻道池源碼流程解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-12-12淺析Java中靜態(tài)代理和動態(tài)代理的應(yīng)用與區(qū)別
代理模式在我們生活中很常見,而Java中常用的兩個的代理模式就是動態(tài)代理與靜態(tài)代理,這篇文章主要為大家介紹了二者的應(yīng)用與區(qū)別,需要的可以參考下2023-08-08解決springboot錯誤:找不到或無法加載主類(配置編碼或者Maven)
這篇文章主要介紹了解決springboot錯誤:找不到或無法加載主類(配置編碼或者Maven)問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-06-06Spring Data Jpa實現(xiàn)分頁和排序代碼實例
本篇文章主要介紹了Spring Data Jpa實現(xiàn)分頁和排序代碼實例,具有一定的參考價值,有興趣的可以了解一下。2017-03-03