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

mybatis plus 的動(dòng)態(tài)表名的配置詳解

 更新時(shí)間:2020年09月02日 14:17:22   作者:團(tuán)子是個(gè)傻子  
這篇文章主要介紹了mybatis plus 的動(dòng)態(tài)表名的配置詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

mybatis plus簡(jiǎn)介

詳見mybatis plus的官網(wǎng)

業(yè)務(wù)要求

  • 業(yè)務(wù)上要求存儲(chǔ)數(shù)據(jù)的時(shí)候根據(jù)某個(gè)字段動(dòng)態(tài)的選擇數(shù)據(jù)要存儲(chǔ)的表.
  • 如根據(jù)code字段: code->[1001,1002]來進(jìn)行選擇存儲(chǔ)的表:
  • 經(jīng)過下面的配置實(shí)現(xiàn)動(dòng)態(tài)表名如 --> table1_1001,table_1002的效果.以此動(dòng)態(tài)生成表名的效果.

具體實(shí)現(xiàn)

MPConfig.java

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.extension.parsers.DynamicTableNameParser;
import com.baomidou.mybatisplus.extension.parsers.ITableNameHandler;
import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
import org.apache.ibatis.reflection.MetaObject;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import java.util.Collections;
import java.util.HashMap;
import java.util.List;

/**
 * @Author: xuzz
 * @Description:
 * @Date: Created in 上午11:22 19-10-12
 * @Modified By:
 */
@Configuration
@MapperScan("com.dao")
public class MPConfig {

  @Autowired
  private Tables tableNames;

  /**
   * @Author: xuzz
   * @Date: 上午11:46 19-10-12
   * 動(dòng)態(tài)表名
   */
  @Bean
  public PaginationInterceptor paginationInterceptor(){
    PaginationInterceptor paginationInterceptor = new PaginationInterceptor();
    DynamicTableNameParser dynamicTableNameParser = new DynamicTableNameParser();
    dynamicTableNameParser.setTableNameHandlerMap(new HashMap<String, ITableNameHandler>(2){{
      //涉及表集合
      List<String> tables = tableNames.getTableNames();
      //動(dòng)態(tài)表規(guī)則 初始表名+_+code
      tables.forEach(tableTitle -> put(tableTitle,(metaObject, sql, tableName) -> tableName + "_" + String.valueOf(getParamValue("關(guān)鍵字段名",metaObject))));
    }});
    paginationInterceptor.setSqlParserList(Collections.singletonList(dynamicTableNameParser));
    return paginationInterceptor;
  }

  /**
   * @Author: xuzz
   * @Date: 下午2:55 19-10-12
   * 獲取參數(shù)值
   */
  private Object getParamValue(String title, MetaObject metaObject){
    //獲取參數(shù)
    Object originalObject = metaObject.getOriginalObject();
    JSONObject originalObjectJSON = JSON.parseObject(JSON.toJSONString(originalObject));
    JSONObject boundSql = originalObjectJSON.getJSONObject("boundSql");
    JSONObject parameterObject = boundSql.getJSONObject("parameterObject");
     return parameterObject.get(title);
  }

Tables.java 表頭列表類

@Configuration
@ConfigurationProperties("mp")
public class Tables {

  private List<String> tableNames;

  public List<String> getTableNames() {
    return tableNames;
  }

  public void setTableNames(List<String> tableNames) {
    this.tableNames = tableNames;
  }
}

application.yml

mp:
  tableNames: #表頭列表
   - table1
   - table2
   - table3

其他基礎(chǔ)配置的無異

到此這篇關(guān)于mybatis plus 的動(dòng)態(tài)表名的配置詳解的文章就介紹到這了,更多相關(guān)mybatis plus 動(dòng)態(tài)表名配置內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Spring聲明式事務(wù)@Transactional知識(shí)點(diǎn)分享

    Spring聲明式事務(wù)@Transactional知識(shí)點(diǎn)分享

    在本篇文章里小編給大家整理了關(guān)于Spring聲明式事務(wù)@Transactional詳解內(nèi)容,需要的朋友們可以參考下。
    2020-02-02
  • java中List集合子類特點(diǎn)淺析

    java中List集合子類特點(diǎn)淺析

    java.util.List接口繼承自Collection接口,是單列集合的一個(gè)重要分支,習(xí)慣性地會(huì)將實(shí)現(xiàn)了List接口的對(duì)象稱為L(zhǎng)ist集合,下面這篇文章主要給大家介紹了關(guān)于java中List集合子類特點(diǎn)的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-01-01
  • Java+ElasticSearch+Pytorch實(shí)現(xiàn)以圖搜圖功能

    Java+ElasticSearch+Pytorch實(shí)現(xiàn)以圖搜圖功能

    這篇文章主要為大家詳細(xì)介紹了Java如何利用ElasticSearch和Pytorch實(shí)現(xiàn)以圖搜圖功能,文中的示例代碼講解詳細(xì),具有一定的學(xué)習(xí)價(jià)值,感興趣的小伙伴可以了解一下
    2023-06-06
  • java學(xué)習(xí)之理解自動(dòng)拆裝箱特性

    java學(xué)習(xí)之理解自動(dòng)拆裝箱特性

    這篇文章主要介紹java自動(dòng)拆裝箱特性以及java自動(dòng)拆裝箱的應(yīng)用,有需要的朋友可以借鑒參考下,希望可以有所幫助,祝大家早日升職加薪
    2021-09-09
  • 基于JavaScript動(dòng)態(tài)規(guī)劃編寫一個(gè)益智小游戲

    基于JavaScript動(dòng)態(tài)規(guī)劃編寫一個(gè)益智小游戲

    最近在學(xué)習(xí)動(dòng)態(tài)規(guī)劃相關(guān)的知識(shí),所以本文將利用動(dòng)態(tài)規(guī)劃編寫一個(gè)簡(jiǎn)單的益智小游戲,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下
    2023-06-06
  • Spring中@RequestMapping、@RestController和Postman

    Spring中@RequestMapping、@RestController和Postman

    本文介紹了Spring框架中常用的@RequestMapping和@RestController注解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-10-10
  • Java經(jīng)典設(shè)計(jì)模式之模板方法模式定義與用法示例

    Java經(jīng)典設(shè)計(jì)模式之模板方法模式定義與用法示例

    這篇文章主要介紹了Java經(jīng)典設(shè)計(jì)模式之模板方法模式,簡(jiǎn)單說明了模板方法模式的原理、定義,并結(jié)合實(shí)例形式分析了java模板方法模式的具體使用方法,需要的朋友可以參考下
    2017-08-08
  • SpringSecurity實(shí)現(xiàn)踢出指定用戶的示例

    SpringSecurity實(shí)現(xiàn)踢出指定用戶的示例

    SpringSecurity中使用SessionRegistryImpl類可以獲取session信息并踢出用戶,這篇文章主要介紹了SpringSecurity實(shí)現(xiàn)踢出指定用戶的示例,需要的朋友可以參考下
    2025-03-03
  • Spring中字段格式化的使用小結(jié)

    Spring中字段格式化的使用小結(jié)

    Spring提供的一個(gè)core.convert包?是一個(gè)通用類型轉(zhuǎn)換系統(tǒng)。它提供了統(tǒng)一的?ConversionService??API和強(qiáng)類型的Converter SPI,用于實(shí)現(xiàn)從一種類型到另一種類型的轉(zhuǎn)換邏輯,這篇文章主要介紹了Spring中字段格式化的使用詳解,需要的朋友可以參考下
    2022-06-06
  • java9新特性Reactive?Stream響應(yīng)式編程?API

    java9新特性Reactive?Stream響應(yīng)式編程?API

    這篇文章主要為大家介紹了java9新特性響應(yīng)式編程API的特點(diǎn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-03-03

最新評(píng)論

永定县| 信阳市| 乐东| 海安县| 靖安县| 张家界市| 都兰县| 江城| 正宁县| 深水埗区| 增城市| 乾安县| 喀什市| 松滋市| 泰兴市| 肥乡县| 望城县| 千阳县| 封丘县| 会泽县| 鹰潭市| 山东省| 天峨县| 札达县| 贵溪市| 新化县| 黎平县| 阿克| 洪雅县| 吉林省| 柘城县| 商城县| 南充市| 监利县| 西林县| 阳朔县| 高唐县| 盐城市| 杭锦旗| 时尚| 张家川|