mybatisPlus 代码生成器的实现(新版)
依赖引入
<!-- mybatisPlus 需要的jar 及其依赖关系 -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.5.3.1</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus</artifactId>
<version>3.5.3.1</version>
</dependency>
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>2.3.32</version>
</dependency>
<dependency>
<groupId>io.swagger</groupId>
<artifactId>swagger-annotations</artifactId>
<version>1.5.22</version>
</dependency>
<!-- 根据mysql的版本进行引入,我这里是mysql8 -->
<dependency>
<groupId>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId>
<scope>runtime</scope>
</dependency>
代码实现及其配置
package com.example.demo;
import com.baomidou.mybatisplus.generator.FastAutoGenerator;
import com.baomidou.mybatisplus.generator.config.OutputFile;
import com.baomidou.mybatisplus.generator.config.StrategyConfig;
import com.baomidou.mybatisplus.generator.config.rules.DbColumnType;
import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;
import java.sql.Types;
import java.util.Collections;
/**
* @author Jason Black
* @version The past cannot be redeemed, the future can be changed.
* @CreateTime 2023/6/20 09:01:54
**/
@SuppressWarnings({"all"})
public class autoCode {
public static void main(String[] args) {
abilitily();
}
// 改代码也可直接写在main方法中,个人习惯(写成一个私有方法)
private static void abilitily(){
// create(url,username,password)
FastAutoGenerator.create("jdbc:mysql://localhost:3306/mybatisautocode?serverTimezone=GMT%2b8",
"root",
"000000")
.globalConfig(builder -> {
builder.author("Jason") // 设置作者
.commentDate("yyyy-MM-dd HH-mm-ss") // 设置创建时间
.enableSwagger() // 开启 swagger 模式
.fileOverride() // 覆盖已生成文件
.outputDir("C:\\Users\\86195\\Desktop\\练手项目\\JavaKnowLedge\\mybatis0\\mybatis\\demo" +
"\\src\\main\\java"); // 指定输出目录
})
.dataSourceConfig(builder -> builder.typeConvertHandler((globalConfig, typeRegistry, metaInfo) -> {
int typeCode = metaInfo.getJdbcType().TYPE_CODE;
if (typeCode == Types.SMALLINT) {
// 自定义类型转换
return DbColumnType.INTEGER;
}
return typeRegistry.getColumnType(metaInfo);
}))
.packageConfig(builder -> {
builder.parent("com.example.demo") // 设置父包名
.moduleName("autocode") // 设置父包模块名
.pathInfo(Collections.singletonMap(OutputFile.xml, "C:\\Users\\86195\\Desktop\\练手项目\\" +
"JavaKnowLedge\\mybatis0\\mybatis\\demo\\src\\main\\resources\\mapper"));
// 设置mapperXml生成路径
})
.strategyConfig(builder -> {
builder.addInclude("user") // 设置需要生成的表名
.addTablePrefix("t_", "c_"); // 设置过滤表前缀
})
.templateEngine(new FreemarkerTemplateEngine())// 使用Freemarker引擎模板,默认的是Velocity引擎模板
.execute();
}
}
最后运行改代码即可
- 代码运行之前
- 代码运行后
报错信息:个人在实现改代码生成器中遇到的问题
- 依赖引起的报错
- 解决方法:引入依赖即可
代码
<!--mybatisPlus 核心依赖-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus</artifactId>
<version>3.5.3.1</version>
</dependency>
<!--freeMark 模版解析器-->
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>2.3.32</version>
</dependency>