MyBatis-Plus Generator配置詳解
本文僅對使用MyBatis-Plus的代碼生成器配置做保存,適合使用了該插件的童鞋做參考。
內(nèi)部有大量默認配置,有性趣的童鞋可以研究下源碼。
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 { //生成文件所在項目路徑 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ù)庫配置四要素 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ù)庫配置 */ gen.setDataSource(new DataSourceConfig() .setDbType(DbType.MYSQL) .setDriverName(driverName) .setUrl(url) .setUsername(username) .setPassword(password) .setTypeConvert(new MySqlTypeConvert() { // 自定義數(shù)據(jù)庫表字段類型轉(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 二級緩存 .setBaseResultMap(true)// XML ResultMap .setBaseColumnList(true)// XML columList .setOpen(false)//生成后打開文件夾 .setAuthor(authorName) // 自定義文件命名,注意 %s 會自動填充表實體屬性! .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"}) // 排除生成的表 // 自定義實體父類 // .setSuperEntityClass("com.baomidou.demo.TestEntity") // 自定義實體,公共字段 //.setSuperEntityColumns(new String[]{"test_id"}) //.setTableFillList(tableFillList) // 自定義 mapper 父類 默認BaseMapper //.setSuperMapperClass("com.baomidou.mybatisplus.mapper.BaseMapper") // 自定義 service 父類 默認IService // .setSuperServiceClass("com.baomidou.demo.TestService") // 自定義 service 實現(xiàn)類父類 默認ServiceImpl // .setSuperServiceImplClass("com.baomidou.demo.TestServiceImpl") // 自定義 controller 父類 //.setSuperControllerClass("com.kichun."+packageName+".controller.AbstractController") // 【實體】是否生成字段常量(默認 false) // public static final String ID = "test_id"; // .setEntityColumnConstant(true) // 【實體】是否為構(gòu)建者模型(默認 false) // public User setName(String name) {this.name = name; return this;} // .setEntityBuilderModel(true) // 【實體】是否為lombok模型(默認 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")// 這里是控制器包名,默認 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); /** * 指定模板引擎 默認是VelocityTemplateEngine ,需要引入相關(guān)引擎依賴 */ gen.setTemplateEngine(new FreemarkerTemplateEngine()); /** * 模板配置 */ gen.setTemplate( // 關(guān)閉默認 xml 生成,調(diào)整生成 至 根目錄 new TemplateConfig().setXml(null) // 自定義模板配置,模板可以參考源碼 /mybatis-plus/src/main/resources/template 使用 copy // 至您項目 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)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
關(guān)于Springboot | @RequestBody 接收到的參數(shù)對象屬性為空的問題
這篇文章主要介紹了關(guān)于Springboot | @RequestBody 接收到的參數(shù)對象屬性為空的問題,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-03-03SpringBoot使用PageHelper插件實現(xiàn)Mybatis分頁效果
這篇文章主要介紹了SpringBoot使用PageHelper插件實現(xiàn)Mybatis分頁效果,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作有一定的參考借鑒價值,需要的朋友可以參考下2024-02-02SpringBoot中的JPA(Java?Persistence?API)詳解
這篇文章主要介紹了SpringBoot中的JPA(Java?Persistence?API)詳解,JPA用于將?Java?對象映射到關(guān)系型數(shù)據(jù)庫中,它提供了一種面向?qū)ο蟮姆绞絹聿僮鲾?shù)據(jù)庫,使得開發(fā)者可以更加方便地進行數(shù)據(jù)持久化操作,需要的朋友可以參考下2023-07-07elasticsearch的zenDiscovery和master選舉機制原理分析
這篇文章主要介紹了elasticsearch的zenDiscovery和master選舉機制原理分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-04-04Java字節(jié)緩存流的構(gòu)造方法之文件IO流
這篇文章主要介紹了Java字節(jié)緩存流的構(gòu)造方法之文件IO流,同時也介紹了字符流中的一些相關(guān)的內(nèi)容,并且通過大量的案例供大家理解。最后通過一些經(jīng)典的案例幫助大家對前面所學(xué)的知識做了一個綜合的應(yīng)用,需要的朋友可以參考一下2022-04-04SpringBoot實現(xiàn)自定義Starter的步驟詳解
在SpringBoot中,Starter是一種特殊的依賴,它可以幫助我們快速地集成一些常用的功能,例如數(shù)據(jù)庫連接、消息隊列、Web框架等。在本文中,我們將介紹如何使用Spring Boot實現(xiàn)自定義Starter,需要的朋友可以參考下2023-06-06