最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MybatisPlusInterceptor實(shí)現(xiàn)sql攔截器超詳細(xì)教程

 更新時(shí)間:2023年08月01日 08:36:45   作者:學(xué)不會(huì)揍你  
這篇文章主要給大家介紹了關(guān)于MybatisPlusInterceptor實(shí)現(xiàn)sql攔截器超詳細(xì)教程的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

1 . 導(dǎo)入pom

        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.4.2</version>
        </dependency>   

2 . 配置下MybatisPlus的yml

mybatis-plus:
  mapper-locations:
  - classpath:mapper/*/*Mapper.xml  
  global-config:
    db-config:
      id-type: auto
    banner: true
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

3 . 實(shí)體類

@Data
@TableName("sys_user")
@ApiModel(value = "SysUser對(duì)象", description = "用戶信息")
public class SysUser implements Serializable {
    @TableId("SU_CODE")
    @ApiModelProperty(value = "用戶編碼")
    private String suCode;
    @TableField("SUS_CODE")
    @ApiModelProperty(value = "分類編碼")
    private String susCode;
    @TableField("SU_NAME")
    @ApiModelProperty(value = "用戶姓名")
    private String suName;
    @TableField("SU_SEX")
    @ApiModelProperty(value = "性別:0未知,1男,2女")
    private Integer suSex;
    @TableField("SU_AGE")
    @ApiModelProperty(value = "年齡")
    private Integer suAge;
}

4 .  DTO

@Data
@ApiModel(value = "SysUserDTO對(duì)象", description = "用戶信息DTO")
public class SysUserDTO {
    @ApiModelProperty(value = "用戶編碼")
    private String suCode;
    @ApiModelProperty(value = "分類編碼")
    private String susCode;
    @ApiModelProperty(value = "用戶姓名")
    private String suName;
    @ApiModelProperty(value = "性別:0未知,1男,2女")
    private Integer suSex;
    @ApiModelProperty(value = "年齡")
    private Integer suAge;
    private Integer page = 1;
    private Integer limit = 10;
}

5 . MybatisPlus的config

import cn.hutool.core.util.ArrayUtil;
import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.autoconfigure.ConfigurationCustomizer;
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.handler.TenantLineHandler;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.TenantLineInnerInterceptor;
import lombok.extern.slf4j.Slf4j;
import net.sf.jsqlparser.expression.Expression;
import net.sf.jsqlparser.expression.LongValue;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Slf4j
@Configuration
public class MybatisPlusConfig {
    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor() {
        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
        log.info("進(jìn)入sql攔截器");
        //分頁(yè)攔截器插件
        //如果用了分頁(yè)插件注意先 add TenantLineInnerInterceptor 再 add PaginationInnerInterceptor
        interceptor.addInnerInterceptor(new TenantLineInnerInterceptor(new TenantLineHandler() {
            //租戶id(拼接sql的條件的值)
            @Override
            public Expression getTenantId() {
                return new LongValue(1);
            }
            //追加的字段(拼接sql的條件)
            @Override
            public String getTenantIdColumn() {
                return "SU_CODE";
            }
            //去掉實(shí)體類字段
            @Override
            public boolean ignoreTable(String tableName) {
                String[] arr = new String[]{
                        "susCode",
                        "suName",
                        "suSex",
                        "suAge"
                };
                return ArrayUtil.contains(arr, tableName);
            }
        }));
        interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
        return interceptor;
    }
    // 用了分頁(yè)插件必須設(shè)置 MybatisConfiguration#useDeprecatedExecutor = false
    //        interceptor.addInnerInterceptor(new PaginationInnerInterceptor());
    @Bean
    public ConfigurationCustomizer configurationCustomizer() {
        return configuration -> configuration.setUseDeprecatedExecutor(false);
    }
}

6 . controller

@RestController
@RequestMapping("exam")
public class SysUserController {
    @Autowired
    private SysUserService sysUserService;
    @RequestMapping("list")
    public IPage<SysUser> list(SysUserDTO userDTO) {
        IPage<SysUser> page = new Page<>(userDTO.getPage(), userDTO.getLimit());
        return sysUserService.page(page);
    }
}

7 . 測(cè)試

 成功實(shí)現(xiàn)sql攔截并進(jìn)行拼接

總結(jié)

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

相關(guān)文章

  • Java Map遍歷2種實(shí)現(xiàn)方法代碼實(shí)例

    Java Map遍歷2種實(shí)現(xiàn)方法代碼實(shí)例

    這篇文章主要介紹了Java Map遍歷2種實(shí)現(xiàn)方法代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-10-10
  • Java使用dom4j實(shí)現(xiàn)對(duì)xml簡(jiǎn)單的增刪改查操作示例

    Java使用dom4j實(shí)現(xiàn)對(duì)xml簡(jiǎn)單的增刪改查操作示例

    這篇文章主要介紹了Java使用dom4j實(shí)現(xiàn)對(duì)xml簡(jiǎn)單的增刪改查操作,結(jié)合實(shí)例形式詳細(xì)分析了Java使用dom4j實(shí)現(xiàn)對(duì)xml簡(jiǎn)單的增刪改查基本操作技巧與相關(guān)注意事項(xiàng),需要的朋友可以參考下
    2020-05-05
  • Java中Druid連接池連接超時(shí)獲取不到連接的解決

    Java中Druid連接池連接超時(shí)獲取不到連接的解決

    這篇文章主要介紹了Java中Druid連接池連接超時(shí)獲取不到連接的解決,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • MyBatis-Plus中BaseMapper接口的增刪查改操作大全

    MyBatis-Plus中BaseMapper接口的增刪查改操作大全

    本文介紹了MyBatis-Plus中BaseMapper接口的常用方法,包括根據(jù)ID查詢、根據(jù)多個(gè)ID查詢、根據(jù)字段名-值對(duì)查詢、使用QueryWrapper進(jìn)行復(fù)雜查詢、分頁(yè)查詢、插入、刪除和修改操作,通過(guò)這些方法,可以方便地進(jìn)行數(shù)據(jù)庫(kù)的增刪查改操作,感興趣的朋友跟隨小編一起看看吧
    2025-11-11
  • java實(shí)現(xiàn)八皇后問(wèn)題示例分享

    java實(shí)現(xiàn)八皇后問(wèn)題示例分享

    這篇文章主要介紹了java實(shí)現(xiàn)八皇后問(wèn)題示例,八皇后問(wèn)題,是一個(gè)古老而著名的問(wèn)題,是回溯算法的典型案例。該問(wèn)題是國(guó)際西洋棋棋手馬克斯·貝瑟爾于1848年提出
    2014-03-03
  • 小議Java的源文件的聲明規(guī)則以及編程風(fēng)格

    小議Java的源文件的聲明規(guī)則以及編程風(fēng)格

    這篇文章主要介紹了小議Java的源文件的聲明規(guī)則以及編程風(fēng)格,僅給Java初學(xué)者作一個(gè)簡(jiǎn)單的示范,需要的朋友可以參考下
    2015-09-09
  • java導(dǎo)出包含多個(gè)sheet的Excel代碼示例

    java導(dǎo)出包含多個(gè)sheet的Excel代碼示例

    這篇文章主要介紹了java導(dǎo)出包含多個(gè)sheet的Excel,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • JAVA Netty實(shí)現(xiàn)聊天室+私聊功能的示例代碼

    JAVA Netty實(shí)現(xiàn)聊天室+私聊功能的示例代碼

    這篇文章主要介紹了JAVA Netty實(shí)現(xiàn)聊天室+私聊功能的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • Java校驗(yàn)validate介紹和使用實(shí)例

    Java校驗(yàn)validate介紹和使用實(shí)例

    這篇文章主要介紹了Java校驗(yàn)validate介紹和使用的相關(guān)資料,還介紹了如何使用@Valid和@Validated注解進(jìn)行聲明式校驗(yàn),以及如何處理復(fù)雜校驗(yàn)需求,通過(guò)自定義校驗(yàn)注解來(lái)實(shí)現(xiàn),需要的朋友可以參考下
    2025-01-01
  • java list去重操作實(shí)現(xiàn)方式

    java list去重操作實(shí)現(xiàn)方式

    本文主要介紹了java list 去重的方法,其中有帶類型寫(xiě)法和不帶類型寫(xiě)法,并舉例測(cè)試,具有一定參考借鑒價(jià)值,希望能對(duì)有需要的小伙伴有所幫助
    2016-07-07

最新評(píng)論

肇州县| 井陉县| 禄劝| 遵义市| 年辖:市辖区| 麻江县| 雅安市| 鄂托克旗| 化州市| 荔浦县| 高清| 双柏县| 新兴县| 湘潭县| 武山县| 乌拉特中旗| 鲁山县| 闽侯县| 武陟县| 苏尼特右旗| 嘉祥县| 安康市| 叶城县| 安康市| 保德县| 宣汉县| 西青区| 永福县| 江口县| 乌审旗| 浠水县| 美姑县| 津市市| 青海省| 株洲县| 广平县| 上犹县| 灵台县| 彭水| 明光市| 伊宁市|