欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Springboot整合mybatis-plus使用pageHelper進(jìn)行分頁(yè)(使用步驟)

 更新時(shí)間:2024年11月23日 09:50:14   作者:ueanaIU瀟瀟子  
PageHelper是一個(gè)MyBatis分頁(yè)插件,可以方便地實(shí)現(xiàn)數(shù)據(jù)庫(kù)查詢結(jié)果的分頁(yè)功能,在Maven或Gradle項(xiàng)目中引入依賴,并在配置文件中進(jìn)行配置,本文給大家介紹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.propertiesapplication.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)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 解讀maven配置阿里云鏡像問(wèn)題

    解讀maven配置阿里云鏡像問(wèn)題

    這篇文章主要介紹了解讀maven配置阿里云鏡像問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • AsyncHttpClient?ChannelPool線程池頻道池源碼流程解析

    AsyncHttpClient?ChannelPool線程池頻道池源碼流程解析

    這篇文章主要為大家介紹了AsyncHttpClient ChannelPool線程池頻道池源碼流程解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-12-12
  • 淺析Java中靜態(tài)代理和動(dòng)態(tài)代理的應(yīng)用與區(qū)別

    淺析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
  • 一文讓你搞懂如何手寫一個(gè)redis分布式鎖

    一文讓你搞懂如何手寫一個(gè)redis分布式鎖

    既然要搞懂Redis分布式鎖,那肯定要有一個(gè)需要它的場(chǎng)景。高并發(fā)售票問(wèn)題就是一個(gè)經(jīng)典案例。本文就來(lái)利用這個(gè)場(chǎng)景手寫一個(gè)redis分布式鎖,讓你徹底搞懂它
    2022-11-11
  • java中如何調(diào)用js

    java中如何調(diào)用js

    Nashorn是Java8中引入的一個(gè)新的JavaScript引擎,它允許在JVM上運(yùn)行JavaScript代碼,并且可以與Java代碼相互調(diào)用,Nashorn遵循JSR233規(guī)范,是一個(gè)純Java實(shí)現(xiàn)的JavaScript引擎,可以與Java程序無(wú)縫集成,提供動(dòng)態(tài)腳本執(zhí)行和靈活性
    2025-01-01
  • 解決springboot錯(cuò)誤:找不到或無(wú)法加載主類(配置編碼或者M(jìn)aven)

    解決springboot錯(cuò)誤:找不到或無(wú)法加載主類(配置編碼或者M(jìn)aven)

    這篇文章主要介紹了解決springboot錯(cuò)誤:找不到或無(wú)法加載主類(配置編碼或者M(jìn)aven)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • java和 javaw 及 javaws的區(qū)別解析

    java和 javaw 及 javaws的區(qū)別解析

    這篇文章主要介紹了java和 javaw 及 javaws的區(qū)別解析,本文通過(guò)實(shí)例給大家詳細(xì)介紹,對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-06-06
  • Spring Data Jpa實(shí)現(xiàn)分頁(yè)和排序代碼實(shí)例

    Spring Data Jpa實(shí)現(xiàn)分頁(yè)和排序代碼實(shí)例

    本篇文章主要介紹了Spring Data Jpa實(shí)現(xiàn)分頁(yè)和排序代碼實(shí)例,具有一定的參考價(jià)值,有興趣的可以了解一下。
    2017-03-03
  • 淺談Java安全之C3P0鏈利用與分析

    淺談Java安全之C3P0鏈利用與分析

    本文主要介紹了淺談Java安全之C3P0鏈利用與分析,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • Spring Cache框架應(yīng)用介紹

    Spring Cache框架應(yīng)用介紹

    我們一定聽(tīng)說(shuō)過(guò)"緩存無(wú)敵"的話,特別是在大型互聯(lián)網(wǎng)公司,"查多寫少"的場(chǎng)景屢見(jiàn)不鮮。Spring Cache是作用在方法上的,其核心思想是,當(dāng)我們?cè)谡{(diào)用一個(gè)緩存方法時(shí)會(huì)把該方法參數(shù)和返回結(jié)果作為一個(gè)鍵值對(duì)存在緩存中
    2022-09-09

最新評(píng)論