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

MyBatis-Plus Generator配置詳解

 更新時(shí)間:2020年08月26日 14:25:40   作者:黃進(jìn)廣寒  
這篇文章主要介紹了MyBatis-Plus Generator配置詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

本文僅對(duì)使用MyBatis-Plus的代碼生成器配置做保存,適合使用了該插件的童鞋做參考。

內(nèi)部有大量默認(rèn)配置,有性趣的童鞋可以研究下源碼。

ps:官方文檔更齊全http://mp.baomidou.com/

package com.kichun.ucenter.service;

import com.baomidou.mybatisplus.generator.AutoGenerator;
import com.baomidou.mybatisplus.generator.InjectionConfig;
import com.baomidou.mybatisplus.generator.config.*;
import com.baomidou.mybatisplus.generator.config.converts.MySqlTypeConvert;
import com.baomidou.mybatisplus.generator.config.po.TableInfo;
import com.baomidou.mybatisplus.generator.config.rules.DbColumnType;
import com.baomidou.mybatisplus.generator.config.rules.DbType;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;

import java.io.File;
import java.util.*;

/**
 * Created by wangqichang on 2018/6/1.
 */
public class MabatisPlusGenerator {

  //生成文件所在項(xiàng)目路徑
  private static String baseProjectPath = "D:\\Git\\strandrd_official_website\\kichun\\kichun-ucenter\\kichun-ucenter-entity";

  //基本包名
  private static String basePackage="com.kichun.ucenter";
  //作者
  private static String authorName="wangqichang";
  //要生成的表名
  private static String[] tables= {"t_role","t_resource","t_role_resource","t_user_role"};
  //table前綴
  private static String prefix="t_";

  //數(shù)據(jù)庫(kù)配置四要素
  private static String driverName = "net.sf.log4jdbc.DriverSpy";
  private static String url = "jdbc:log4jdbc:mysql://127.0.0.1:3306/kichun_dev?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true";
  private static String username = "不告訴你";
  private static String password = "密碼也不告訴你";


  public static void main(String[] args) {


    AutoGenerator gen = new AutoGenerator();

    /**
     * 數(shù)據(jù)庫(kù)配置
     */
    gen.setDataSource(new DataSourceConfig()
        .setDbType(DbType.MYSQL)
        .setDriverName(driverName)
        .setUrl(url)
        .setUsername(username)
        .setPassword(password)
        .setTypeConvert(new MySqlTypeConvert() {
          // 自定義數(shù)據(jù)庫(kù)表字段類型轉(zhuǎn)換【可選】
          @Override
          public DbColumnType processTypeConvert(String fieldType) {
            System.out.println("轉(zhuǎn)換類型:" + fieldType);
            // if ( fieldType.toLowerCase().contains( "tinyint" ) ) {
            //  return DbColumnType.BOOLEAN;
            // }
            return super.processTypeConvert(fieldType);
          }
        }));

    /**
     * 全局配置
     */
    gen.setGlobalConfig(new GlobalConfig()
        .setOutputDir( baseProjectPath + "/src/main/java")//輸出目錄
        .setFileOverride(true)// 是否覆蓋文件
        .setActiveRecord(true)// 開啟 activeRecord 模式
        .setEnableCache(false)// XML 二級(jí)緩存
        .setBaseResultMap(true)// XML ResultMap
        .setBaseColumnList(true)// XML columList
        .setOpen(false)//生成后打開文件夾
        .setAuthor(authorName)
        // 自定義文件命名,注意 %s 會(huì)自動(dòng)填充表實(shí)體屬性!
        .setMapperName("%sMapper")
        .setXmlName("%sMapper")
        .setServiceName("%sService")
        .setServiceImplName("%sServiceImpl")
        .setControllerName("%sController")
    );

    /**
     * 策略配置
     */
    gen.setStrategy(new StrategyConfig()
        // .setCapitalMode(true)// 全局大寫命名
        //.setDbColumnUnderline(true)//全局下劃線命名
        .setTablePrefix(new String[]{prefix})// 此處可以修改為您的表前綴
        .setNaming(NamingStrategy.underline_to_camel)// 表名生成策略
        .setInclude(tables) // 需要生成的表
        .setRestControllerStyle(true)
        //.setExclude(new String[]{"test"}) // 排除生成的表
        // 自定義實(shí)體父類
        // .setSuperEntityClass("com.baomidou.demo.TestEntity")
        // 自定義實(shí)體,公共字段
        //.setSuperEntityColumns(new String[]{"test_id"})
        //.setTableFillList(tableFillList)
        // 自定義 mapper 父類 默認(rèn)BaseMapper
        //.setSuperMapperClass("com.baomidou.mybatisplus.mapper.BaseMapper")
        // 自定義 service 父類 默認(rèn)IService
        // .setSuperServiceClass("com.baomidou.demo.TestService")
        // 自定義 service 實(shí)現(xiàn)類父類 默認(rèn)ServiceImpl
        // .setSuperServiceImplClass("com.baomidou.demo.TestServiceImpl")
        // 自定義 controller 父類
        //.setSuperControllerClass("com.kichun."+packageName+".controller.AbstractController")
        // 【實(shí)體】是否生成字段常量(默認(rèn) false)
        // public static final String ID = "test_id";
        // .setEntityColumnConstant(true)
        // 【實(shí)體】是否為構(gòu)建者模型(默認(rèn) false)
        // public User setName(String name) {this.name = name; return this;}
        // .setEntityBuilderModel(true)
        // 【實(shí)體】是否為lombok模型(默認(rèn) false)<a  rel="external nofollow" >document</a>
        .setEntityLombokModel(true)
        // Boolean類型字段是否移除is前綴處理
        // .setEntityBooleanColumnRemoveIsPrefix(true)
        // .setRestControllerStyle(true)
        // .setControllerMappingHyphenStyle(true)
    );

    /**
     * 包配置
     */
    gen.setPackageInfo(new PackageConfig()
            //.setModuleName("User")
            .setParent(basePackage)// 自定義包路徑
            .setController("controller")// 這里是控制器包名,默認(rèn) web
            .setEntity("entity")
            .setMapper("dao")
            .setService("service")
            .setServiceImpl("service.impl")
            .setXml("mapper")
            );

    /**
     * 注入自定義配置
     */
    // 注入自定義配置,可以在 VM 中使用 cfg.abc 設(shè)置的值
    InjectionConfig abc = new InjectionConfig() {
      @Override
      public void initMap() {
        Map<String, Object> map = new HashMap<>();
        map.put("abc", this.getConfig().getGlobalConfig().getAuthor() + "-mp");
        this.setMap(map);
      }
    };
    //自定義文件輸出位置(非必須)
    List<FileOutConfig> fileOutList = new ArrayList<>();
    fileOutList.add(new FileOutConfig("/templates/mapper.xml.ftl") {
      @Override
      public String outputFile(TableInfo tableInfo) {
        return baseProjectPath + "/src/main/resources/mappers/" + tableInfo.getEntityName() + ".xml";
      }
    });
    abc.setFileOutConfigList(fileOutList);
    gen.setCfg(abc);

    /**
     * 指定模板引擎 默認(rèn)是VelocityTemplateEngine ,需要引入相關(guān)引擎依賴
     */
    gen.setTemplateEngine(new FreemarkerTemplateEngine());

    /**
     * 模板配置
     */
    gen.setTemplate(
        // 關(guān)閉默認(rèn) xml 生成,調(diào)整生成 至 根目錄
        new TemplateConfig().setXml(null)
        // 自定義模板配置,模板可以參考源碼 /mybatis-plus/src/main/resources/template 使用 copy
        // 至您項(xiàng)目 src/main/resources/template 目錄下,模板名稱也可自定義如下配置:
        // .setController("...");
        // .setEntity("...");
        // .setMapper("...");
        // .setXml("...");
        // .setService("...");
        // .setServiceImpl("...");
    );

    // 執(zhí)行生成
    gen.execute();
  }
}

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

相關(guān)文章

  • 關(guān)于Springboot | @RequestBody 接收到的參數(shù)對(duì)象屬性為空的問題

    關(guān)于Springboot | @RequestBody 接收到的參數(shù)對(duì)象屬性為空的問題

    這篇文章主要介紹了關(guān)于Springboot | @RequestBody 接收到的參數(shù)對(duì)象屬性為空的問題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-03-03
  • SpringBoot使用PageHelper插件實(shí)現(xiàn)Mybatis分頁(yè)效果

    SpringBoot使用PageHelper插件實(shí)現(xiàn)Mybatis分頁(yè)效果

    這篇文章主要介紹了SpringBoot使用PageHelper插件實(shí)現(xiàn)Mybatis分頁(yè)效果,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2024-02-02
  • SpringBoot中的JPA(Java?Persistence?API)詳解

    SpringBoot中的JPA(Java?Persistence?API)詳解

    這篇文章主要介紹了SpringBoot中的JPA(Java?Persistence?API)詳解,JPA用于將?Java?對(duì)象映射到關(guān)系型數(shù)據(jù)庫(kù)中,它提供了一種面向?qū)ο蟮姆绞絹?lái)操作數(shù)據(jù)庫(kù),使得開發(fā)者可以更加方便地進(jìn)行數(shù)據(jù)持久化操作,需要的朋友可以參考下
    2023-07-07
  • JAVA日志框架之JUL、JDK原生日志框架詳解

    JAVA日志框架之JUL、JDK原生日志框架詳解

    Java語(yǔ)言的強(qiáng)大之處就是因?yàn)樗鼜?qiáng)大而且成熟的生態(tài)體系,其中包括日志框架,下面這篇文章主要給大家介紹了關(guān)于JAVA日志框架之JUL、JDK原生日志框架的相關(guān)資料,需要的朋友可以參考下
    2024-01-01
  • Java代碼中4種字符串拼接方式分析

    Java代碼中4種字符串拼接方式分析

    本文主要介紹了Java代碼中4種字符串拼接方式分析,主要介紹了“+”號(hào)、StringBuilder、StringJoiner、String#join,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • elasticsearch的zenDiscovery和master選舉機(jī)制原理分析

    elasticsearch的zenDiscovery和master選舉機(jī)制原理分析

    這篇文章主要介紹了elasticsearch的zenDiscovery和master選舉機(jī)制原理分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-04-04
  • IDEA 2020 2全家桶安裝激活超詳細(xì)圖文教程

    IDEA 2020 2全家桶安裝激活超詳細(xì)圖文教程

    這篇文章主要介紹了IDEA-2020-2 全家桶安裝激活超詳細(xì)教程,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-08-08
  • Java字節(jié)緩存流的構(gòu)造方法之文件IO流

    Java字節(jié)緩存流的構(gòu)造方法之文件IO流

    這篇文章主要介紹了Java字節(jié)緩存流的構(gòu)造方法之文件IO流,同時(shí)也介紹了字符流中的一些相關(guān)的內(nèi)容,并且通過(guò)大量的案例供大家理解。最后通過(guò)一些經(jīng)典的案例幫助大家對(duì)前面所學(xué)的知識(shí)做了一個(gè)綜合的應(yīng)用,需要的朋友可以參考一下
    2022-04-04
  • SpringBoot實(shí)現(xiàn)自定義Starter的步驟詳解

    SpringBoot實(shí)現(xiàn)自定義Starter的步驟詳解

    在SpringBoot中,Starter是一種特殊的依賴,它可以幫助我們快速地集成一些常用的功能,例如數(shù)據(jù)庫(kù)連接、消息隊(duì)列、Web框架等。在本文中,我們將介紹如何使用Spring Boot實(shí)現(xiàn)自定義Starter,需要的朋友可以參考下
    2023-06-06
  • java實(shí)現(xiàn)簡(jiǎn)單超市管理系統(tǒng)

    java實(shí)現(xiàn)簡(jiǎn)單超市管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)簡(jiǎn)單超市管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-01-01

最新評(píng)論