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

SpringBoot+MyBatis-Plus實(shí)現(xiàn)分頁(yè)功能

 更新時(shí)間:2024年01月02日 09:18:26   作者:hoypte  
在SpringBoot項(xiàng)目中,結(jié)合MyBatis-Plus(簡(jiǎn)稱MP)可以非常方便地實(shí)現(xiàn)分頁(yè)功能,MP為開(kāi)發(fā)者提供了分頁(yè)插件PaginationInterceptor,只需簡(jiǎn)單配置即可使用,本文給大家介紹了SpringBoot+MyBatis-Plus實(shí)現(xiàn)分頁(yè)功能,文中通過(guò)代碼示例給大家介紹的非常詳細(xì),需要的朋友可以參考下

前言

在SpringBoot項(xiàng)目中,結(jié)合MyBatis-Plus(簡(jiǎn)稱MP)可以非常方便地實(shí)現(xiàn)分頁(yè)功能。MP為開(kāi)發(fā)者提供了分頁(yè)插件PaginationInterceptor,只需簡(jiǎn)單配置即可使用。

一、配置分頁(yè)插件

首先,在SpringBoot的配置類中(通常是帶有@Configuration注解的類)配置PaginationInterceptor。

import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class MybatisPlusConfig {

    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor() {
        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
        interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.H2)); // 根據(jù)你的數(shù)據(jù)庫(kù)類型選擇相應(yīng)的DbType
        return interceptor;
    }
}

注意:在新版本的MyBatis-Plus中,分頁(yè)插件的配置方式有所變化,不再使用PaginationInterceptor,而是使用MybatisPlusInterceptor結(jié)合PaginationInnerInterceptor。請(qǐng)根據(jù)你的MP版本選擇合適的配置方式。

二、編寫(xiě)Mapper接口

接下來(lái),在Mapper接口中定義分頁(yè)查詢的方法。不需要在Mapper的XML文件中編寫(xiě)SQL語(yǔ)句來(lái)實(shí)現(xiàn)分頁(yè),因?yàn)榉猪?yè)插件會(huì)自動(dòng)對(duì)SQL進(jìn)行分頁(yè)處理。

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Select;
import your.package.name.EntityClass; 

public interface YourMapper extends BaseMapper<EntityClass> {
    // 使用MP提供的分頁(yè)功能,不需要編寫(xiě)具體的分頁(yè)SQL
    IPage<EntityClass> selectPageList(Page<EntityClass> page, QueryWrapper<EntityClass> queryWrapper);
}

實(shí)際上,如果你的EntityClass正確繼承了MP的BaseModel(在新版本中通常不需要繼承),并且你的Mapper繼承了BaseMapper,你甚至不需要在Mapper接口中定義上述的selectPageList方法,因?yàn)锽aseMapper已經(jīng)提供了分頁(yè)查詢的方法。

三、在服務(wù)層調(diào)用分頁(yè)查詢

在服務(wù)層,你可以調(diào)用Mapper接口中的分頁(yè)查詢方法。首先,你需要?jiǎng)?chuàng)建一個(gè)Page對(duì)象,并設(shè)置當(dāng)前頁(yè)碼和每頁(yè)顯示的記錄數(shù)。然后,調(diào)用Mapper的方法執(zhí)行分頁(yè)查詢。

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import your.package.name.EntityClass; 
import your.package.name.YourMapper; 

@Service
public class YourService {
    @Autowired
    private YourMapper yourMapper;
    
    public Page<EntityClass> getPageList(int current, int size) {
        // 創(chuàng)建分頁(yè)對(duì)象,current為當(dāng)前頁(yè)碼,size為每頁(yè)顯示的數(shù)量
        Page<EntityClass> page = new Page<>(current, size);
        // 調(diào)用Mapper方法進(jìn)行分頁(yè)查詢,這里假設(shè)沒(méi)有額外的查詢條件,如果有可以使用QueryWrapper添加條件
        return yourMapper.selectPage(page, null); // 如果你的Mapper沒(méi)有定義selectPageList方法,請(qǐng)使用BaseMapper中的selectPage方法代替
    }
}

請(qǐng)注意:如果你的MP版本較新,且你的實(shí)體沒(méi)有繼承MP的任何類(這是推薦的做法),你應(yīng)該直接使用BaseMapper中的selectPage方法。此外,如果你的查詢需要額外的條件,可以創(chuàng)建一個(gè)QueryWrapper對(duì)象來(lái)指定這些條件。在上面的示例中,我沒(méi)有添加任何條件,所以傳遞了null作為第二個(gè)參數(shù)。

四、在控制器中調(diào)用服務(wù)層的分頁(yè)方法

最后,在控制器中調(diào)用服務(wù)層的分頁(yè)方法,并將結(jié)果返回給前端。通常,前端會(huì)期望得到一個(gè)包含當(dāng)前頁(yè)碼、總頁(yè)數(shù)、每頁(yè)記錄數(shù)和數(shù)據(jù)列表的響應(yīng)對(duì)象。你可以自定義一個(gè)響應(yīng)類來(lái)封裝這些信息,或者直接使用MP提供的Page對(duì)象。這里演示后者。

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import your.package.name.EntityClass; 
import your.package.name.YourService; 

@RestController
@RequestMapping("/your-endpoint")
public class YourController {
    @Autowired
    private YourService yourService;
    
    @GetMapping("/page") // 分頁(yè)查詢的API路徑,例如/your-endpoint/page?current=1&size=10
    public Page<EntityClass> getPageList(@RequestParam int current, @RequestParam int size) {
        // 調(diào)用服務(wù)層方法進(jìn)行分頁(yè)查詢,并返回結(jié)果給前端
        return yourService.getPageList(current, size); // 這里的方法名應(yīng)與服務(wù)層一致
    }
}

到此這篇關(guān)于SpringBoot+MyBatis-Plus實(shí)現(xiàn)分頁(yè)功能的文章就介紹到這了,更多相關(guān)SpringBoot MyBatis-Plus分頁(yè)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • mybatis-plus復(fù)合主鍵的使用

    mybatis-plus復(fù)合主鍵的使用

    本文主要介紹了mybatis-plus復(fù)合主鍵的使用,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • spring boot validation參數(shù)校驗(yàn)實(shí)例分析

    spring boot validation參數(shù)校驗(yàn)實(shí)例分析

    這篇文章主要介紹了spring boot validation參數(shù)校驗(yàn),結(jié)合實(shí)例形式分析了spring boot validation進(jìn)行數(shù)據(jù)有效性驗(yàn)證的相關(guān)操作技巧,需要的朋友可以參考下
    2019-11-11
  • 淺析Java線程的中斷機(jī)制

    淺析Java線程的中斷機(jī)制

    本篇文章通過(guò)代碼實(shí)例給大家分享了學(xué)習(xí)Java線程的中斷機(jī)制的一些心得內(nèi)容,有興趣的朋友學(xué)習(xí)下吧。
    2017-12-12
  • MybatisPlus 主鍵策略之type=IdType.ASSIGN_ID等詳解

    MybatisPlus 主鍵策略之type=IdType.ASSIGN_ID等詳解

    雪花算法(雪花)是微博開(kāi)源的分布式ID生成算法其核心思想就是:使用一個(gè)64位的長(zhǎng)型的數(shù)字作為全局唯一ID,這篇文章主要介紹了MybatisPlus 主鍵策略(type=IdType.ASSIGN_ID等詳解),需要的朋友可以參考下
    2024-04-04
  • Java如何基于EasyExcel實(shí)現(xiàn)導(dǎo)入數(shù)據(jù)校驗(yàn)并生成錯(cuò)誤信息Excel

    Java如何基于EasyExcel實(shí)現(xiàn)導(dǎo)入數(shù)據(jù)校驗(yàn)并生成錯(cuò)誤信息Excel

    這篇文章主要介紹了Java如何基于EasyExcel實(shí)現(xiàn)導(dǎo)入數(shù)據(jù)校驗(yàn)并生成錯(cuò)誤信息Excel,為了優(yōu)化項(xiàng)目中的文件導(dǎo)入功能,考慮構(gòu)建一個(gè)基于EasyExcel的通用Excel導(dǎo)入框架,主要解決導(dǎo)入數(shù)據(jù)的校驗(yàn)問(wèn)題,避免業(yè)務(wù)代碼中堆積大量校驗(yàn)邏輯,需要的朋友可以參考下
    2024-09-09
  • Java線性表的順序表示及實(shí)現(xiàn)

    Java線性表的順序表示及實(shí)現(xiàn)

    這篇文章主要介紹了Java線性表的順序表示及實(shí)現(xiàn),順序表是在計(jì)算機(jī)內(nèi)存中以數(shù)組的形式保存的線性表,線性表的順序存儲(chǔ)是指用一組地址連續(xù)的存儲(chǔ)單元依次存儲(chǔ)線性表中的各個(gè)元素、使得線性表中在邏輯結(jié)構(gòu)上相鄰的數(shù)據(jù)元素存儲(chǔ)在相鄰的物理存儲(chǔ)單元中
    2022-07-07
  • 詳談Java 異常處理的誤區(qū)和經(jīng)驗(yàn)總結(jié)(分享)

    詳談Java 異常處理的誤區(qū)和經(jīng)驗(yàn)總結(jié)(分享)

    下面小編就為大家分享一篇Java 異常處理的誤區(qū)和經(jīng)驗(yàn)總結(jié),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2017-12-12
  • Spring的事件機(jī)制知識(shí)點(diǎn)詳解及實(shí)例分析

    Spring的事件機(jī)制知識(shí)點(diǎn)詳解及實(shí)例分析

    在本篇內(nèi)容里小編給大家分享的是一篇關(guān)于Spring的事件機(jī)制知識(shí)點(diǎn)詳解及實(shí)例分析,有需要的朋友么可以參考下。
    2021-12-12
  • Java中十進(jìn)制和十六進(jìn)制的相互轉(zhuǎn)換方法

    Java中十進(jìn)制和十六進(jìn)制的相互轉(zhuǎn)換方法

    下面小編就為大家?guī)?lái)一篇Java中十進(jìn)制和十六進(jìn)制的相互轉(zhuǎn)換方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-08-08
  • Java面試題沖刺第十八天--Spring框架3

    Java面試題沖刺第十八天--Spring框架3

    這篇文章主要為大家分享了最有價(jià)值的三道關(guān)于Spring框架的面試題,涵蓋內(nèi)容全面,包括數(shù)據(jù)結(jié)構(gòu)和算法相關(guān)的題目、經(jīng)典面試編程題等,感興趣的小伙伴們可以參考一下
    2021-08-08

最新評(píng)論