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

Mybatis-Plus支持GBase8s分頁查詢的實現(xiàn)示例

 更新時間:2023年01月09日 15:43:32   作者:熱心網(wǎng)友小紅  
本文主要介紹了使?Mybatis-Plus?支持?GBase8s?的分頁查詢,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

MyBatis-Plus (簡稱 MP)是一個 MyBatis 的增強工具,在 MyBatis 的基礎上只做增強不做改變,為簡化開發(fā)、提高效率而生。在最新版 MP 中,已明確支持 南大通用數(shù)據(jù)庫 (GBase 8s)。但是在分頁查詢上,綁定參數(shù)順序不正確,需要一定調整。

使用的版本為:

mybatis-plus版本:3.5.1
使用 maven 管理依賴。

        <!--mybatis_plus-->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.5.1</version>
        </dependency>

實現(xiàn)方法

確認攔截器類型,DbType選擇對應枚舉值。

@Configuration
public class MyBatisPlusConfig {

    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor() {
        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
        //添加分頁插件
        interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.GBASEDBT));
        return interceptor;
    }

}

查看GBase8s對應枚舉值,可參考路徑 com.baomidou.mybatisplus.annotation.DbType

在這里插入圖片描述

改寫攔截器

可參考路徑 com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor ,隨版本可能變化,可 調試 步入 定位攔截器位置。

如下為需要修改的代碼段

    IDialect dialect = this.findIDialect(executor);
    Configuration configuration = ms.getConfiguration();
    DialectModel model = dialect.buildPaginationSql(buildSql, page.offset(), page.getSize());
    MPBoundSql mpBoundSql = PluginUtils.mpBoundSql(boundSql);
    List<ParameterMapping> mappings = mpBoundSql.parameterMappings();
    Map<String, Object> additionalParameter = mpBoundSql.additionalParameters();
    model.consumers(mappings, configuration, additionalParameter);
    mpBoundSql.sql(model.getDialectSql());
    mpBoundSql.parameterMappings(mappings);

找到本地依賴包位置, com.baomidou.mybatisplus.extension

在這里插入圖片描述

找到對應目錄下,會發(fā)現(xiàn)maven下載了 jar包 、源碼、doc等相關內容,我們需要反編譯 jar包內的 PaginationInnerInterceptor

改寫源碼,建議備份一份原始版本

在這里插入圖片描述

復制出 mybatis-plus-extension-3.5.1.jar 包,解壓縮,并找到 PaginationInnerInterceptor,反編譯出來。

直接拖進IDEA就可以反編譯了。

在這里插入圖片描述

在這里插入圖片描述

新建一個任意空工程,如圖所示,創(chuàng)建包路徑,類名全部與源碼一致,并復制 反編譯內容到新創(chuàng)建的 PaginationInnerInterceptor 類內。

在這里插入圖片描述

接下來,需要將所有校驗錯誤全部修正。

import相關錯誤,對應導入jar即可。

在這里插入圖片描述

方法一,本地maven庫下找到相關jar包,一個一個導入。

在這里插入圖片描述

方法二,配置 maven下載,在 pom.xml中添加

        <!--mybatis_plus-->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.5.1</version>
        </dependency>

        <!-- lombok 依賴 -->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.16.10</version>
        </dependency>

方法重寫相關問題,添加注解 @Override 。

在這里插入圖片描述

變量反編譯相關問題,反編譯會有一些小錯誤,如重復聲明,對應修改即可;傳參null注明類型的相關錯誤,直接刪掉 如(Object)即可。

在這里插入圖片描述

修改為

在這里插入圖片描述

確定無校驗錯誤后,修改源碼,找到方法 beforeQuery,添加如下內容在對應位置。

    if(dbType.equals(DbType.GBASEDBT)){
        mappings.add(0,mappings.get(mappings.size()-1));
        mappings.add(0,mappings.get(mappings.size()-2));
        mappings.remove(mappings.size()-1);
        mappings.remove(mappings.size()-1);
    }

在這里插入圖片描述

編譯工程,并找到對應 class 文件位置。

在這里插入圖片描述

在這里插入圖片描述

使用壓縮程序直接打開本地maven庫下的 mybatis-plus-extension-3.5.1.jar ,找到對應位置,直接替換 class

在這里插入圖片描述

打開項目工程,reload maven庫,直接運行,測試通過

在這里插入圖片描述

到此這篇關于使 Mybatis-Plus 支持 GBase8s 的分頁查詢的文章就介紹到這了,更多相關Mybatis-Plus GBase8s分頁查詢內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Spring JdbcTemplate實現(xiàn)添加與查詢方法詳解

    Spring JdbcTemplate實現(xiàn)添加與查詢方法詳解

    JdbcTemplate是Spring框架自帶的對JDBC操作的封裝,目的是提供統(tǒng)一的模板方法使對數(shù)據(jù)庫的操作更加方便、友好,效率也不錯,這篇文章主要介紹了Spring?JdbcTemplate執(zhí)行數(shù)據(jù)庫操作,需要的朋友可以參考下
    2022-11-11
  • java實現(xiàn)圖片分割指定大小

    java實現(xiàn)圖片分割指定大小

    這篇文章主要為大家詳細介紹了java實現(xiàn)圖片分割指定大小,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • Spring Boot console log 格式自定義方式

    Spring Boot console log 格式自定義方式

    這篇文章主要介紹了Spring Boot console log 格式自定義方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • SpringBoot2底層注解@Import用法詳解

    SpringBoot2底層注解@Import用法詳解

    這篇文章主要為大家介紹了SpringBoot2底層注解@Import用法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-05-05
  • 關于SpringBoot靜態(tài)資源路徑管理問題

    關于SpringBoot靜態(tài)資源路徑管理問題

    這篇文章主要介紹了SpringBoot靜態(tài)資源路徑管理,主要包括默認靜態(tài)資源路徑,增加靜態(tài)資源路徑前綴的相關操作,本文給大家介紹的非常詳細,需要的朋友可以參考下
    2022-05-05
  • Android 應用按返回鍵退向后臺運行實例代碼

    Android 應用按返回鍵退向后臺運行實例代碼

    這篇文章主要介紹了Android 應用按返回鍵退向后臺運行實例代碼的相關資料,需要的朋友可以參考下
    2017-04-04
  • Java 中的 String對象為什么是不可變的

    Java 中的 String對象為什么是不可變的

    String對象是不可變的,但這僅意味著你無法通過調用它的公有方法來改變它的值。本文給大家介紹java中的string對象為什么是不可變的,需要的朋友一起了解了解吧
    2015-10-10
  • Java中的Thread.join()詳解

    Java中的Thread.join()詳解

    這篇文章主要介紹了Thread.join()詳解?,join是Thread類的一個方法,啟動線程后直接調用,本文通過實例代碼介紹了join方法的作用及用法詳解,需要的朋友可以參考下
    2023-09-09
  • SpringBoot?LiteFlow引擎框架使用原理解析

    SpringBoot?LiteFlow引擎框架使用原理解析

    LiteFlow是一個輕量且強大的國產(chǎn)規(guī)則引擎框架,可用于復雜的組件化業(yè)務的編排領域,本文給大家介紹SpringBoot?LiteFlow引擎框架的相關操作,感興趣的朋友跟隨小編一起看看吧
    2024-03-03
  • JAVA中實現(xiàn)鏈式操作(方法鏈)的簡單例子

    JAVA中實現(xiàn)鏈式操作(方法鏈)的簡單例子

    這篇文章主要介紹了JAVA中實現(xiàn)鏈式操作的例子,模仿jQuery的方法鏈實現(xiàn),需要的朋友可以參考下
    2014-04-04

最新評論