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