日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

MyBatisPlus3.x中使用代码生成器(全注释)

發(fā)布時(shí)間:2025/3/19 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MyBatisPlus3.x中使用代码生成器(全注释) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

場(chǎng)景

MyBaitsPlus3.x與2.x是不一樣的。這里使用3.0.1版本。

官方文檔

https://mp.baomidou.com/guide/generator.html#%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B

這里在IDEA上的SpringBoot項(xiàng)目中進(jìn)行代碼生成測(cè)試。

實(shí)現(xiàn)

添加依賴

添加 代碼生成器 依賴

<dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-generator</artifactId><version>3.2.0</version> </dependency>

注意:MyBatis-Plus 從 3.0.3 之后移除了代碼生成器與模板引擎的默認(rèn)依賴,需要手動(dòng)添加相關(guān)依賴

<!-- 模板引擎velocity start--><dependency><groupId>org.apache.velocity</groupId><artifactId>velocity-engine-core</artifactId><version>2.0</version></dependency><!-- 模板引擎velocity end--><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.0.1</version></dependency>

模板引擎

MyBatis-Plus 支持 Velocity(默認(rèn))、Freemarker、Beetl,用戶可以選擇自己熟悉的模板引擎。

注意!如果您選擇了非默認(rèn)引擎,需要在 AutoGenerator 中 設(shè)置模板引擎。

AutoGenerator generator = new AutoGenerator();// set freemarker engine generator.setTemplateEngine(new FreemarkerTemplateEngine());// set beetl engine generator.setTemplateEngine(new BeetlTemplateEngine());// set custom engine (reference class is your custom engine class) generator.setTemplateEngine(new CustomTemplateEngine());

編寫代碼

在test下新建單元測(cè)試類Generatortest.java

全局配置

?//全局配置GlobalConfig config = new GlobalConfig();//設(shè)置是否支持AR模式config.setActiveRecord(true)//設(shè)置生成代碼的作者.setAuthor("badaoliumangqizhi")//設(shè)置輸出代碼的位置.setOutputDir("f:output")//.setEnableCache(false)// XML 二級(jí)緩存//.setBaseResultMap(true)// XML ResultMap//.setBaseColumnList(true)// XML columList//.setKotlin(true) 是否生成 kotlin 代碼//設(shè)置是否覆蓋原來(lái)的代碼.setFileOverride(true);

數(shù)據(jù)源配置

//數(shù)據(jù)庫(kù)連接urlString dbUrl = "jdbc:sqlserver://;DatabaseName=";//數(shù)據(jù)源配置DataSourceConfig dataSourceConfig = new DataSourceConfig();//數(shù)據(jù)庫(kù)類型 枚舉dataSourceConfig.setDbType(DbType.SQL_SERVER)//設(shè)置url.setUrl(dbUrl)//設(shè)置用戶名.setUsername("")//設(shè)置密碼.setPassword("")//設(shè)置數(shù)據(jù)庫(kù)驅(qū)動(dòng).setDriverName("com.microsoft.sqlserver.jdbc.SQLServerDriver")// 自定義數(shù)據(jù)庫(kù)表字段類型轉(zhuǎn)換【可選】.setTypeConvert(new MySqlTypeConvert() {@Overridepublic DbColumnType processTypeConvert(GlobalConfig globalConfig, String fieldType) {System.out.println("轉(zhuǎn)換類型:" + fieldType);//tinyint轉(zhuǎn)換成Booleanif ( fieldType.toLowerCase().contains( "tinyint" ) ) {return DbColumnType.BOOLEAN;}//將數(shù)據(jù)庫(kù)中datetime轉(zhuǎn)換成dateif ( fieldType.toLowerCase().contains( "datetime" ) ) {return DbColumnType.DATE;}return (DbColumnType) super.processTypeConvert(globalConfig, fieldType);}});

策略配置

//策略配置StrategyConfig strategyConfig = new StrategyConfig();strategyConfig//全局大寫命名是否開啟.setCapitalMode(true)//【實(shí)體】是否為lombok模型.setEntityLombokModel(true)//表名生成策略? 下劃線轉(zhuǎn)駝峰.setNaming(NamingStrategy.underline_to_camel)//自動(dòng)填充設(shè)置//.setTableFillList(tableFillList)//修改替換成你需要的表名,多個(gè)表名傳數(shù)組.setInclude("wms_receive_order");

集成注入配置

//注入全局設(shè)置new AutoGenerator().setGlobalConfig(config)//注入數(shù)據(jù)源配置.setDataSource(dataSourceConfig)//注入策略配置.setStrategy(strategyConfig)//設(shè)置包名信息.setPackageInfo(new PackageConfig()//提取公共父級(jí)包名.setParent("com.badao.bus.sys")//設(shè)置controller信息.setController("controller")//設(shè)置實(shí)體類信息.setEntity("entity"))//設(shè)置自定義模板.setTemplate(new TemplateConfig()//.setXml(null)//指定自定義模板路徑, 位置:/resources/templates/entity2.java.ftl(或者是.vm)//注意不要帶上.ftl(或者是.vm), 會(huì)根據(jù)使用的模板引擎自動(dòng)識(shí)別// 自定義模板配置,模板可以參考源碼 /mybatis-plus/src/main/resources/template 使用 copy// 至您項(xiàng)目 src/main/resources/template 目錄下,模板名稱也可自定義如下配置:// .setController("...");// .setEntity("...");// .setMapper("...");// .setXml("...");// .setService("...");.setServiceImpl("templates/serviceImpl.java"))//開始執(zhí)行代碼生成.execute();}

完整生成器代碼

package com.ws.test.generator;import com.baomidou.mybatisplus.annotation.DbType; import com.baomidou.mybatisplus.annotation.FieldFill; import com.baomidou.mybatisplus.generator.config.*; import com.baomidou.mybatisplus.generator.config.converts.MySqlTypeConvert; import com.baomidou.mybatisplus.generator.config.po.TableFill; import com.baomidou.mybatisplus.generator.config.rules.DbColumnType; import org.junit.Test; import com.baomidou.mybatisplus.generator.AutoGenerator; import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;import java.util.ArrayList; import java.util.List;/*** Created by badado on 2019/4/25.*/ public class Generatortest {@Testpublic void generateTest(){//全局配置GlobalConfig config = new GlobalConfig();//設(shè)置是否支持AR模式config.setActiveRecord(true)//設(shè)置生成代碼的作者.setAuthor("badaoliumangqizhi")//設(shè)置輸出代碼的位置.setOutputDir("f:output")//.setEnableCache(false)// XML 二級(jí)緩存//.setBaseResultMap(true)// XML ResultMap//.setBaseColumnList(true)// XML columList//.setKotlin(true) 是否生成 kotlin 代碼//設(shè)置是否覆蓋原來(lái)的代碼.setFileOverride(true);//******************************數(shù)據(jù)源配置***************************************//數(shù)據(jù)庫(kù)連接urlString dbUrl = "jdbc:sqlserver://;DatabaseName=";//數(shù)據(jù)源配置DataSourceConfig dataSourceConfig = new DataSourceConfig();//數(shù)據(jù)庫(kù)類型 枚舉dataSourceConfig.setDbType(DbType.SQL_SERVER)//設(shè)置url.setUrl(dbUrl)//設(shè)置用戶名.setUsername("")//設(shè)置密碼.setPassword("")//設(shè)置數(shù)據(jù)庫(kù)驅(qū)動(dòng).setDriverName("com.microsoft.sqlserver.jdbc.SQLServerDriver")// 自定義數(shù)據(jù)庫(kù)表字段類型轉(zhuǎn)換【可選】.setTypeConvert(new MySqlTypeConvert() {@Overridepublic DbColumnType processTypeConvert(GlobalConfig globalConfig, String fieldType) {System.out.println("轉(zhuǎn)換類型:" + fieldType);//tinyint轉(zhuǎn)換成Booleanif ( fieldType.toLowerCase().contains( "tinyint" ) ) {return DbColumnType.BOOLEAN;}//將數(shù)據(jù)庫(kù)中datetime轉(zhuǎn)換成dateif ( fieldType.toLowerCase().contains( "datetime" ) ) {return DbColumnType.DATE;}return (DbColumnType) super.processTypeConvert(globalConfig, fieldType);}});//******************************策略配置******************************************************// 自定義需要填充的字段 數(shù)據(jù)庫(kù)中的字段List<TableFill> tableFillList = new ArrayList<>();tableFillList.add(new TableFill("gmt_modified", FieldFill.INSERT_UPDATE));tableFillList.add(new TableFill("modifier_id", FieldFill.INSERT_UPDATE));tableFillList.add(new TableFill("creator_id", FieldFill.INSERT));tableFillList.add(new TableFill("gmt_creat", FieldFill.INSERT));tableFillList.add(new TableFill("available_flag", FieldFill.INSERT));tableFillList.add(new TableFill("deleted_flag", FieldFill.INSERT));tableFillList.add(new TableFill("sync_flag", FieldFill.INSERT));//策略配置StrategyConfig strategyConfig = new StrategyConfig();strategyConfig//全局大寫命名是否開啟.setCapitalMode(true)//【實(shí)體】是否為lombok模型.setEntityLombokModel(true)//表名生成策略? 下劃線轉(zhuǎn)駝峰.setNaming(NamingStrategy.underline_to_camel)//自動(dòng)填充設(shè)置.setTableFillList(tableFillList)//修改替換成你需要的表名,多個(gè)表名傳數(shù)組.setInclude("wms_receive_order");//集成注入設(shè)置//注入全局設(shè)置new AutoGenerator().setGlobalConfig(config)//注入數(shù)據(jù)源配置.setDataSource(dataSourceConfig)//注入策略配置.setStrategy(strategyConfig)//設(shè)置包名信息.setPackageInfo(new PackageConfig()//提取公共父級(jí)包名.setParent("com.badao.bus.sys")//設(shè)置controller信息.setController("controller")//設(shè)置實(shí)體類信息.setEntity("entity"))//設(shè)置自定義模板.setTemplate(new TemplateConfig()//.setXml(null)//指定自定義模板路徑, 位置:/resources/templates/entity2.java.ftl(或者是.vm)//注意不要帶上.ftl(或者是.vm), 會(huì)根據(jù)使用的模板引擎自動(dòng)識(shí)別// 自定義模板配置,模板可以參考源碼 /mybatis-plus/src/main/resources/template 使用 copy// 至您項(xiàng)目 src/main/resources/template 目錄下,模板名稱也可自定義如下配置:// .setController("...");// .setEntity("...");// .setMapper("...");// .setXml("...");// .setService("...");.setServiceImpl("templates/serviceImpl.java"))//開始執(zhí)行代碼生成.execute();} }

效果

運(yùn)行測(cè)試

生成成功后會(huì)自動(dòng)彈出生成代碼的目錄

?

總結(jié)

以上是生活随笔為你收集整理的MyBatisPlus3.x中使用代码生成器(全注释)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。