SpringBoot代碼生成器-基于Mybatis Plus

SpringBoot代碼生成器-基于Mybatis Plus
可在SpringBoot項目中,快速生成基本結(jié)構(gòu)代碼,并且映射數(shù)據(jù)庫字段實體,方便快捷。
快速搭建項目結(jié)構(gòu),實用性+++++?。。?!
配置好生成器代碼參數(shù)即可一鍵生成代碼。
1.引入依賴:
????????
????????<dependency>
????????????<groupId>com.baomidougroupId>
????????????<artifactId>mybatis-plus-boot-starterartifactId>
????????????<version>3.4.2version>
????????dependency>
????????
????????<dependency>
????????????<groupId>com.baomidougroupId>
????????????<artifactId>mybatis-plus-generatorartifactId>
????????????<version>3.0-RC1version>
????????dependency>
????????
????????<dependency>
????????????<groupId>org.apache.velocitygroupId>
????????????<artifactId>velocityartifactId>
????????????<version>1.7version>
????????dependency>
????????
????????<dependency>
????????????<groupId>org.projectlombokgroupId>
????????????<artifactId>lombokartifactId>
????????????<version>1.18.20version>
????????dependency>2.代碼生成器:
package?com.hbm.codegeneration;
import?com.baomidou.mybatisplus.annotation.DbType;
import?com.baomidou.mybatisplus.annotation.FieldFill;
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.po.TableFill;
import?com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
import?com.baomidou.mybatisplus.generator.engine.VelocityTemplateEngine;
import?java.util.ArrayList;
import?java.util.List;
/**
?*?代碼生成器
?*
?*?@Author?黃柏茗
?*?@Date?2021-12-10
?*/
public?class?Main?{
????public?static?void?main(String[]?args)?{
????
????????//代碼生成器
????????AutoGenerator?autoGenerator?=?new?AutoGenerator();
????????//1.數(shù)據(jù)源配置
????????DataSourceConfig?dataSourceConfig?=?new?DataSourceConfig();
????????dataSourceConfig.setDbType(DbType.MYSQL);//數(shù)據(jù)庫枚舉類型
????????dataSourceConfig.setDriverName("com.mysql.jdbc.Driver");
????????dataSourceConfig.setUsername("root");
????????dataSourceConfig.setPassword("1234");
????????dataSourceConfig.setUrl("jdbc:mysql://localhost:3306/Test?useUnicode=true&characterEncoding=UTF-8");
????????autoGenerator.setDataSource(dataSourceConfig);?//數(shù)據(jù)源配置進自動生成器里
????????//2.全局配置
????????GlobalConfig?globalConfig?=?new?GlobalConfig();
????????globalConfig.setOpen(false);?//代碼生成后是否自動打開?(代碼生成完成后以文件夾形式彈出來)
????????globalConfig.setOutputDir(System.getProperty("user.dir")+"/src/main/java");//設(shè)置代碼輸出路徑(當前系統(tǒng)項目路徑,源代碼Java里面)
????????globalConfig.setAuthor("黃柏茗");?//作者名
????????globalConfig.setServiceName("%sService");?//%s代表表名前綴,后面補上Service
????????autoGenerator.setGlobalConfig(globalConfig);
????????//3.包配置
????????PackageConfig?packageConfig?=?new?PackageConfig();
????????packageConfig.setParent("com.hbm.codegeneration");//父包名
????????packageConfig.setEntity("entity");//實體類包名
????????packageConfig.setMapper("mapper");//mapper包名
????????packageConfig.setController("controller");//控制層包名
????????packageConfig.setService("service");//業(yè)務(wù)層接口包名
????????packageConfig.setServiceImpl("service.impl");//業(yè)務(wù)層實現(xiàn)類包名
????????autoGenerator.setPackageInfo(packageConfig);
????????//策略配置
????????StrategyConfig?strategyConfig?=?new?StrategyConfig();
????????strategyConfig.setEntityLombokModel(true);//是否給實體類添加?Lombok?的注解
????????strategyConfig.setNaming(NamingStrategy.underline_to_camel);//表名映射類名,下劃線轉(zhuǎn)駝峰??如:表名 user_address 下劃線轉(zhuǎn)駝峰實體類為 userAddress
????????strategyConfig.setColumnNaming(NamingStrategy.underline_to_camel);//表字段映射類屬性,下劃線轉(zhuǎn)駝峰?如:表字段 user_id 下劃線轉(zhuǎn)駝峰實體類屬性 userId
????????//4.表自動填充?(mp自動填充,在添加數(shù)據(jù)的時候,創(chuàng)建時間和修改時間,是在滅)??===此處不需要可省略===
//????????List?list??=?new?ArrayList<>();
//????????TableFill?create_time?=?new?TableFill("create_time",?FieldFill.INSERT);
//????????TableFill?update_time?=?new?TableFill("update_time",?FieldFill.INSERT_UPDATE);
//????????list.add(create_time);
//????????list.add(update_time);
//????????strategyConfig.setTableFillList(list);//設(shè)置表自動填充
????????autoGenerator.setStrategy(strategyConfig);
????????//?5.?配置模板引擎
????????//?默認采用velocity模板
????????//autoGenerator.setTemplateEngine(new?VelocityTemplateEngine());
????????//6.執(zhí)行生成代碼
????????autoGenerator.execute();
????????System.err.println("代碼生成完成");
????}
}測試環(huán)境:
SpringBoot、Mybatis Plus、MySQL
測試數(shù)據(jù)庫表:
--?用戶表
create?table?User(
userid?int?primary?key?auto_increment?comment?'用戶主鍵ID',
userName?varchar(40)?comment?'用戶名',
adress_Id?int?comment?'用戶地址表主鍵ID'
)
--?用戶地址表
create?table?User_Address(
addressId?int?primary?key?auto_increment?comment?'地址主鍵ID',
address?varchar(200)?comment?'具體地址'
)
生成代碼結(jié)構(gòu):

大功告成!
評論
圖片
表情
