背景
搭建springboot+mybatisplus,想使用代码生成,找到了两个方法。
方法一:mybatisx-Generator(插件生成代码)使用
打开插件
填写怎么生成,及效果图
附加有翻译的图, 图来源
方法二:代码方式生成
导入依赖
<!-- freemarker(代码生成) -->
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>2.3.31</version>
</dependency>
写一个java类:CodeGenerator
/**
* TODO
*代码生成器
* @Description
* @Author 27388
* @Date 2023/9/21 18:46
**/
public class CodeGenerator {
public static void main(String[] args){
//连接数据库名称
String url = "jdbc:mysql:///practice";
//数据库基本信息
String username = "root";
String password = "123456";
String author = "lzh";
// 实体类等文件位置
String outputDir = "D:\\IDEA\\data\\function\\denglu\\src\\main\\java";
String basePackage = "com.lzh";
String moduleName = "user";
// mapper文件位置
String mapperLocation = "D:\\IDEA\\data\\function\\denglu\\src\\main\\resources\\mapper\\" + moduleName;
//生成的数据表名,可选多个,通过逗号隔开
String tableName = "tb_user";
// 表的前缀
String tablePrefix = "tb_";
FastAutoGenerator.create(url, username, password)
.globalConfig(builder -> {
builder.author(author) // 设置作者
//.enableSwagger() // 开启 swagger 模式
//.fileOverride() // 覆盖已生成文件
.outputDir(outputDir); // 指定输出目录
})
.packageConfig(builder -> {
builder.parent(basePackage) // 设置父包名
.moduleName(moduleName) // 设置父包模块名
.pathInfo(Collections.singletonMap(OutputFile.xml, mapperLocation)); // 设置mapperXml生成路径
})
.strategyConfig(builder -> {
builder.addInclude(tableName) // 设置需要生成的表名
.addTablePrefix(tablePrefix); // 设置过滤表前缀
})
.templateEngine(new FreemarkerTemplateEngine()) // 使用Freemarker引擎模板,默认的是Velocity引擎模板
.execute();
}
}
填写相关信息后,直接运行,两者效果图如下
附加idea连接数据库时候的时区问题