对应文档:代码生成器(新)
该文档更新时间:2023/04/06, 10:19:51
1. Cannot resolve method ‘dataSourceConfig’ in ‘FastAutoGenerator’
dataSourceConfig
方法是在 3.5.3.1 版本中新增的方式,将 pom.xml
中 mybatis-plus-boot-starter
和 mybatis-plus-generator
的版本升到 3.5.3.1 即可解决
2. ‘fileOverride()’ is deprecated
方法一:在 strategyConfig
分别对四个包进行配置,注意,方法名变成了 enableFileOverride
.strategyConfig(builder -> {
builder.addInclude("user")// 设置需要生成的表名
.entityBuilder().enableLombok().enableFileOverride()
.controllerBuilder().enableFileOverride()
.mapperBuilder().enableFileOverride()
.serviceBuilder().enableFileOverride();
})
方法二:将 mybatis-plus-boot-starter
和 mybatis-plus-generator
的版本降到 3.5.1
3. 直接使用生成的 Controller 访问 URL,发现都为 404
将生成的 Controller
中 @Controller
注解改为 @RestController
自己的 Generator 存档
import com.baomidou.mybatisplus.generator.FastAutoGenerator;
import com.baomidou.mybatisplus.generator.config.OutputFile;
import com.baomidou.mybatisplus.generator.config.rules.DbColumnType;
import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;
import java.sql.Types;
import java.util.Collections;
public class Generator {
public static void main(String[] args) {
String projectPath = System.getProperty("user.dir");//user.dir 用户当前工作目录
FastAutoGenerator.create("jdbc:mysql://localhost:3306/database?useUnicode=true&characterEncoding=utf-8&useSSL=false", "root", "password")
.globalConfig(builder -> {
builder.author("Gabriel") // 设置作者
// .enableSwagger() // 开启 swagger 模式
.enableSpringdoc() // 开启 SpringDoc 模式
.outputDir(projectPath+"/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") // 设置父包名
.moduleName("module_name") // 设置父包模块名
//对应 com.example.module_name
.pathInfo(Collections.singletonMap(OutputFile.xml, projectPath+"/src/main/resources/Mapper")); // 设置mapperXml生成路径
})
.strategyConfig(builder -> {
builder.addInclude("user")// 设置需要生成的表名
.entityBuilder().enableLombok().enableFileOverride() //entity 包开启 lombok 和覆盖
// .controllerBuilder().enableFileOverride().enableRestStyle() // controller 包开启覆盖 开启RestController模式
.mapperBuilder().enableFileOverride() // mapper 包开启覆盖
.serviceBuilder().enableFileOverride(); // service 包开启覆盖
// .addTablePrefix("t_", "c_"); // 设置过滤表前缀
})
.templateEngine(new FreemarkerTemplateEngine()) // 使用Freemarker引擎模板,默认的是Velocity引擎模板
.execute();
}
}
springboot
版本 3.1.0
mybatis-plus
和 mybatis-generator
版本 3.5.3.1