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

基于Mybatis plus 自動代碼生成器的實(shí)現(xiàn)代碼

 更新時(shí)間:2018年05月18日 11:28:33   作者:夏天的尾巴ljh  
本文通過實(shí)例代碼給大家介紹了基于Mybatis-plus 自動代碼生成器的相關(guān)知識,非常不錯,具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

1.使用的是maven項(xiàng)目,添加依賴

<!-- mybatis-plus begin --> 
   <dependency> 
     <groupId>com.baomidou</groupId> 
     <artifactId>mybatis-plus</artifactId> 
     <version>2.2.0</version> 
   </dependency> 

還有數(shù)據(jù)庫的連接

<dependency> 
    <groupId>mysql</groupId> 
    <artifactId>mysql-connector-java</artifactId> 
    <scope>compile</scope> 
</dependency> 

最后是源碼

import com.baomidou.mybatisplus.generator.AutoGenerator; 
import com.baomidou.mybatisplus.generator.config.DataSourceConfig; 
import com.baomidou.mybatisplus.generator.config.GlobalConfig; 
import com.baomidou.mybatisplus.generator.config.PackageConfig; 
import com.baomidou.mybatisplus.generator.config.StrategyConfig; 
import com.baomidou.mybatisplus.generator.config.rules.DbType; 
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy; 
import org.junit.jupiter.api.Test; 
/** 
 * mybatis-plus 自動生成代碼 
 * 
 * @author Terry 
 * @version 1.0 
 * @date 2018-05-16 09:35 
 */ 
public class SimpleMp { 
  @Test 
  public void generateCode() { 
    //指定包名 
    String packageName = "com.hciot.hhhh"; 
    //user -> UserService, 設(shè)置成true: user -> IUserService 
    boolean serviceNameStartWithI = false; 
    //指定生成的表名 
    String[] tableNames = new String[]{"data_air_sensor_co", "order_product", "relation_device_gateway"}; 
    generateByTables(serviceNameStartWithI, packageName, tableNames); 
  } 
  /** 
   * 根據(jù)表自動生成 
   * 
   * @param serviceNameStartWithI 默認(rèn)為false 
   * @param packageName      包名 
   * @param tableNames      表名 
   * @author Terry 
   */ 
  private void generateByTables(boolean serviceNameStartWithI, String packageName, String... tableNames) { 
    //配置數(shù)據(jù)源 
    DataSourceConfig dataSourceConfig = getDataSourceConfig(); 
    // 策略配置 
    StrategyConfig strategyConfig = getStrategyConfig(tableNames); 
    //全局變量配置 
    GlobalConfig globalConfig = getGlobalConfig(serviceNameStartWithI); 
    //包名配置 
    PackageConfig packageConfig = getPackageConfig(packageName); 
    //自動生成 
    atuoGenerator(dataSourceConfig, strategyConfig, globalConfig, packageConfig); 
  } 
  /** 
   * 集成 
   * 
   * @param dataSourceConfig 配置數(shù)據(jù)源 
   * @param strategyConfig  策略配置 
   * @param config      全局變量配置 
   * @param packageConfig  包名配置 
   * @author Terry 
   */ 
  private void atuoGenerator(DataSourceConfig dataSourceConfig, StrategyConfig strategyConfig, GlobalConfig config, PackageConfig packageConfig) { 
    new AutoGenerator() 
        .setGlobalConfig(config) 
        .setDataSource(dataSourceConfig) 
        .setStrategy(strategyConfig) 
        .setPackageInfo(packageConfig) 
        .execute(); 
  } 
  /** 
   * 設(shè)置包名 
   * 
   * @param packageName 父路徑包名 
   * @return PackageConfig 包名配置 
   * @author Terry 
   */ 
  private PackageConfig getPackageConfig(String packageName) { 
    return new PackageConfig() 
        .setParent(packageName) 
        .setXml("mapper") 
        .setMapper("dao") 
        .setController("controller") 
        .setEntity("entity"); 
  } 
  /** 
   * 全局配置 
   * 
   * @param serviceNameStartWithI false 
   * @return GlobalConfig 
   * @author Terry 
   */ 
  private GlobalConfig getGlobalConfig(boolean serviceNameStartWithI) { 
    GlobalConfig globalConfig = new GlobalConfig(); 
    globalConfig 
        .setBaseColumnList(true) 
        .setBaseResultMap(true) 
        .setActiveRecord(false) 
        .setAuthor("Terry") 
        //設(shè)置輸出路徑 
        .setOutputDir(getOutputDir("mybatis-plus")) 
        .setFileOverride(true); 
    if (!serviceNameStartWithI) { 
      //設(shè)置service名 
      globalConfig.setServiceName("%sService"); 
    } 
    return globalConfig; 
  } 
  /** 
   * 返回項(xiàng)目路徑 
   * 
   * @param projectName 項(xiàng)目名 
   * @return 項(xiàng)目路徑 
   * @author Terry 
   */ 
  private String getOutputDir(String projectName) { 
    String path = this.getClass().getClassLoader().getResource("").getPath(); 
    int index = path.indexOf(projectName); 
    return path.substring(1, index) + projectName + "/src/main/java/"; 
  } 
  /** 
   * 策略配置 
   * 
   * @param tableNames 表名 
   * @return StrategyConfig 
   * @author Terry 
   */ 
  private StrategyConfig getStrategyConfig(String... tableNames) { 
    return new StrategyConfig() 
        // 全局大寫命名 ORACLE 注意 
        .setCapitalMode(true) 
        .setEntityLombokModel(false) 
        // 表名、字段名、是否使用下劃線命名(默認(rèn) false) 
        .setDbColumnUnderline(true) 
        //從數(shù)據(jù)庫表到文件的命名策略 
        .setNaming(NamingStrategy.underline_to_camel) 
        //需要生成的的表名,多個表名傳數(shù)組 
        .setInclude(tableNames); 
  } 
  /** 
   * 配置數(shù)據(jù)源 
   * 
   * @return 數(shù)據(jù)源配置 DataSourceConfig 
   * @author Terry 
   */ 
  private DataSourceConfig getDataSourceConfig() { 
    String dbUrl = "jdbc:mysql://localhost:3306/test"; 
    return new DataSourceConfig().setDbType(DbType.MYSQL) 
        .setUrl(dbUrl) 
        .setUsername("root") 
        .setPassword("root") 
        .setDriverName("com.mysql.jdbc.Driver"); 
  } 
  /** 
   * 根據(jù)表自動生成 
   * 
   * @param packageName 包名 
   * @param tableNames 表名 
   * @author Terry 
   */ 
  @SuppressWarnings("unused") 
  private void generateByTables(String packageName, String... tableNames) { 
    generateByTables(true, packageName, tableNames); 
  } 
} 

總結(jié)

以上所述是小編給大家介紹的基于Mybatis plus 自動代碼生成器的實(shí)現(xiàn)代碼,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時(shí)回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關(guān)文章

  • java打包解包操作小結(jié)

    java打包解包操作小結(jié)

    使用別人的jar包程序,需要修改其中的相關(guān)參數(shù)然后重新打包,在此記錄一下打包和解包過程,感興趣的朋友跟隨小編一起看看吧
    2023-10-10
  • java集合與數(shù)組的相同點(diǎn)和不同點(diǎn)

    java集合與數(shù)組的相同點(diǎn)和不同點(diǎn)

    今天小編就為大家分享一篇關(guān)于java集合與數(shù)組的相同點(diǎn)和不同點(diǎn),小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2019-04-04
  • Java中的MapStruct用法詳解

    Java中的MapStruct用法詳解

    這篇文章主要介紹了Java中的MapStruct用法詳解,MapStuct的使用非常簡單,把對應(yīng)的jar包引入即可,本文通過示例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2022-04-04
  • 大話Java混合運(yùn)算規(guī)則

    大話Java混合運(yùn)算規(guī)則

    這篇文章主要介紹了大話Java混合運(yùn)算規(guī)則,小編覺得挺不錯的,在這里分享給大家,需要的朋友可以了解下。
    2017-10-10
  • 基于重定向RedirectAttributes的用法解析

    基于重定向RedirectAttributes的用法解析

    這篇文章主要介紹了基于重定向RedirectAttributes的用法,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • javaweb用戶注銷后點(diǎn)擊瀏覽器返回刷新頁面重復(fù)登錄問題的解決方法

    javaweb用戶注銷后點(diǎn)擊瀏覽器返回刷新頁面重復(fù)登錄問題的解決方法

    這篇文章主要為大家詳細(xì)介紹了javaweb用戶注銷后點(diǎn)擊瀏覽器返回刷新頁面重復(fù)登錄問題的解決方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-09-09
  • SpringBoot?JavaMailSender發(fā)送郵件功能(實(shí)例詳解)

    SpringBoot?JavaMailSender發(fā)送郵件功能(實(shí)例詳解)

    JavaMailSender是Spring提供的,非常好用的,實(shí)現(xiàn)郵件發(fā)送的接口 ,這篇文章主要介紹了SpringBoot?JavaMailSender發(fā)送郵件功能,需要的朋友可以參考下
    2024-03-03
  • 一文搞清楚Java中Comparable和Comparator的區(qū)別

    一文搞清楚Java中Comparable和Comparator的區(qū)別

    Java中的Comparable和Comparator都是用于集合排序的接口,但它們有明顯的區(qū)別,文中通過一些實(shí)例代碼詳細(xì)介紹了Java中Comparable和Comparator的區(qū)別,感興趣的同學(xué)跟著小編一起學(xué)習(xí)吧
    2023-05-05
  • Spring?Cloud?Gateway?整合?knife4j?聚合接口文檔功能

    Spring?Cloud?Gateway?整合?knife4j?聚合接口文檔功能

    這篇文章主要介紹了Spring?Cloud?Gateway?整合?knife4j?聚合接口文檔的相關(guān)知識,我們可以基于?Spring?Cloud?Gateway?網(wǎng)關(guān)?+?nacos?+?knife4j?對所有微服務(wù)項(xiàng)目的接口文檔進(jìn)行聚合,從而實(shí)現(xiàn)我們想要的文檔管理功能,需要的朋友可以參考下
    2022-02-02
  • java swing編程入門代碼編寫(java編程入門)

    java swing編程入門代碼編寫(java編程入門)

    Swing是一個為Java設(shè)計(jì)的GUI工具包,是用來做UI界面的,大家看了下面的介紹就要吧自己做java界面了
    2013-12-12

最新評論