新版Mybatiusplus代码生成器
目录
1.前置依赖
<!-- 代码生成器的依赖 -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.5.1</version>
</dependency>
<!-- 代码生成器模板引擎依赖,必须加上-->
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-engine-core</artifactId>
<version>2.3</version>
</dependency>
<!--mybatisplus的依赖-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.2</version>
</dependency>
配置maven插件
因为生成测myabtis.xml的配置文件会在java文件下,这时候扫描到就需要配置插件
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.yml</include>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>false</filtering>
</resource>
<resource>
<directory>src/main/resources</directory>
<includes> <include>**/*.yml</include>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>false</filtering>
</resource>
</resources>
</build>
2.配置对应参数
具体参数可以查看官网,这为使用使用我尝试过的
2.1带注释版本
//数据库配置 使用官网默认
DataSourceConfig dataSourceConfig = new DataSourceConfig.Builder("jdbc:mysql://127.0.0.1:13306/mybatis?test_user&useSSL=true&useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC", "root", "123456")
.dbQuery(new MySqlQuery())//数据库查询
.typeConvert(new MySqlTypeConvert())//数据库类型转换器
.keyWordsHandler(new MySqlKeyWordsHandler())//数据库关键字处理
.build();
//全局配置,
GlobalConfig globalConfig = new GlobalConfig.Builder()
.fileOverride()//覆盖已生成的文件,默认false
.disableOpenDir()//禁止加载完之后打开
.outputDir("D:\\code\\MuddlePro\\src\\main\\java")//输出指定目录默认
.author("qing")//作者
//.enableKotlin()//是否开启kotlin模式 默认false
.enableSwagger()//开启swaggerm模式。默认false
.dateType(DateType.TIME_PACK) //时间策略DateType.ONLY_DATE 默认值: DateType.TIME_PACK
.commentDate("yyyy-MM-dd")//注释的日期
.build();
//包配置
PackageConfig packageConfig = new PackageConfig.Builder()
.parent("com.llkj")//父包名
.moduleName("mybatisplus")//模块名
.entity("entity")//实体类名称
.service("service")//service包
// .serviceImpl("service.impl.tt")//排至impl接口实现存放位置
.mapper("mapper")
// .xml("mapper.xml")
// .controller("controller.hh")//同serviceImpl
// .other("other")//其他包
.build();
//策略模式
StrategyConfig strategyConfig = new StrategyConfig.Builder()
// .enableCapitalMode()//开启大写命名
.enableSkipView()//开启跳过视图
// .disableSqlFilter()//禁用sql过滤
// .likeTable(new LikeTable("USER"))
// .addInclude("t_simple")//增加表的匹配
.addTablePrefix("t_")//去除表的前缀如果t_user则变成User而不包含TUser
// .addFieldPrefix("o")//增加字段过滤的前缀
// .addFieldSuffix("_flag")//增加字段过滤前缀
//实体类策略<------entity层--------->
.entityBuilder()
.enableLombok()//开启lombok
// 去下划线,NamingStrategy.no_change不发生变化,NamingStrategy.underline_to_camel开启驼峰命名
.naming(NamingStrategy.underline_to_camel)
.logicDeleteColumnName("isDelete")//逻辑删除字段数据库字段
.enableTableFieldAnnotation()//开启开启实体生成时字段注解
.idType(IdType.AUTO)//设置主键类型
// <-----controller层----->
.controllerBuilder()
.formatFileName("%sController")//controller层的拼接比如实体类时User拼接成UserController
.enableRestStyle()//开启rest风格,主要为加了@RestController
.enableHyphenStyle()//开启驼峰命名
// <------service层------------>
.serviceBuilder()
.formatServiceFileName("%sService")//同理Controller拼接文件名字
// <-----mapper层控制-------->
.mapperBuilder()
.enableMapperAnnotation()//开启开启 @Mapper 注解,也可用MapperSacan代替
.build();
new AutoGenerator(dataSourceConfig)
.global(globalConfig)
.packageInfo(packageConfig)
.strategy(strategyConfig)
.execute();
2.2对AutoGenerator的解释
官网提供的方法是
所以在FastAutoGenerator类中查看execute方法可以查看到对应的这段代码,所以我们只需要重新调用该类的execute方法就可以执行自己配置的对应参数
ps:这里没有使用自定义的模板
public void execute() {
(new AutoGenerator(this.dataSourceConfigBuilder.build()))
.global(this.globalConfigBuilder.build())
.packageInfo(this.packageConfigBuilder.build())
.strategy(this.strategyConfigBuilder.build())
.injection(this.injectionConfigBuilder.build())
.template(this.templateConfigBuilder.build())
.execute(this.templateEngine);
}
2.3精简版
//数据库配置 使用官网默认
DataSourceConfig dataSourceConfig = new DataSourceConfig.Builder("jdbc:mysql://127.0.0.1:13306/mybatis?test_user&useSSL=true&useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC", "root", "123456")
.dbQuery(new MySqlQuery())//数据库查询
.typeConvert(new MySqlTypeConvert())//数据库类型转换器
.keyWordsHandler(new MySqlKeyWordsHandler())//数据库关键字处理
.build();
//全局配置,
GlobalConfig globalConfig = new GlobalConfig.Builder()
.fileOverride()//覆盖已生成的文件,默认false
.disableOpenDir()//禁止加载完之后打开
.outputDir("D:\\code\\MuddlePro\\src\\main\\java")//输出指定目录默认
.author("qing")//作者
.enableSwagger()//开启swaggerm模式。默认false
.dateType(DateType.TIME_PACK) //时间策略DateType.ONLY_DATE 默认值: DateType.TIME_PACK
.commentDate("yyyy-MM-dd")//注释的日期
.build();
//包配置
PackageConfig packageConfig = new PackageConfig.Builder()
.parent("com.llkj")
.moduleName("mybatisplus")
.entity("entity")
.service("service")
.mapper("mapper")
.build();
//策略模式
StrategyConfig strategyConfig = new StrategyConfig.Builder()
.enableSkipView()//开启跳过视图
.addTablePrefix("t_")//去除表的前缀如果t_user则变成User而不包含TUser
//实体类策略<------entity层--------->
.entityBuilder()
.enableLombok()//开启lombok @Getter 和@Setter方法
.naming(NamingStrategy.underline_to_camel)//开启驼峰命名
.logicDeleteColumnName("isDelete")//设置逻辑删除字段注解 @TableLogic
.enableTableFieldAnnotation()//开启实体生成字段注解注解 @TableFailed
.idType(IdType.AUTO)//设置主键类型 @TableId
// <-----controller层----->
.controllerBuilder()
.formatFileName("%sController")//controller层的拼接比如实体类时User拼接成UserController
.enableRestStyle()//开启rest风格,主要为加了@RestController
.enableHyphenStyle()//开启驼峰命名
// <------service层------------>
.serviceBuilder()
.formatServiceFileName("%sService")//同理Controller拼接文件名字
// <-----mapper层控制-------->
.mapperBuilder()
.enableMapperAnnotation()//开启开启 @Mapper 注解,也可用MapperSacan代替
.build();
new AutoGenerator(dataSourceConfig)
.global(globalConfig)
.packageInfo(packageConfig)
.strategy(strategyConfig)
.execute();