作为一名 Java 后端开发,日常工作中免不了要生成数据库表对应的持久化对象 PO,操作数据库的接口 DAO,以及 CRUD 的 XML,也就是 mapper。
Mybatis Generator 是 MyBatis 官方提供的一个代码生成工具,完全可以胜任这个工作,不过最近在开发项目的时候试用了一下 MyBatis-Plus 官方提供 AutoGenerator,发现配置更简单,开发效率更高!
导入 SQL 文件
我用的MySQL 版本是 8.0,可以在链接上 MySQL 后使用 select version();
命令查询版本。
打开 Navicat,把 SQL 文件导入到本地数据库
体验 MyBatis-Plus 的 AutoGenerator
AutoGenerator 是 MyBatis-Plus 推出的代码生成器,可以快速生成 Entity、Mapper、Mapper XML、Service、Controller 等各个模块的代码,比 Mybatis Generator 更强大,开发效率更高。
第一步,在 pom.xml 文件中添加 AutoGenerator 的依赖。
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.4.1</version>
</dependency>
第二步,添加模板引擎依赖,MyBatis-Plus 支持 Velocity(默认)、Freemarker、Beetl,这里使用 Freemarker引擎。
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>2.3.31</version>
</dependency>
第三步,新建 CodeGenerator.java 文件,在 main 方法中添加 MyBatis-Plus 的 AutoGenerator 对象。
public class CodeGenerator {
public static void main(String[] args) {
// 代码生成器
AutoGenerator mpg = new AutoGenerator();
在 main 方法中添加全局配置。
// 全局配置
GlobalConfig gc = new GlobalConfig();
String projectPath = System.getProperty("user.dir");
gc.setOutputDir(projectPath + "/src/main/java");
gc.setAuthor("藏三");
gc.setOpen(false);
gc.setDateType(DateType.ONLY_DATE);
gc.setSwagger2(true);
gc.setIdType(IdType.AUTO);
gc.setBaseColumnList(true);
gc.setBaseResultMap(true);
gc.setFileOverride(true);
mpg.setGlobalConfig(gc);
解释:
这段代码是使用MyBatis-Plus的代码生成器(mpg)来配置全局参数。具体解释如下:
1. 创建一个GlobalConfig对象,用于设置全局配置信息。
2. 获取当前项目的路径,并将其设置为输出目录。
3. 设置作者为"藏三"。
4. 设置是否打开输出目录,这里设置为false,表示不打开。
5. 设置日期类型为仅日期。
6. 设置是否启用Swagger2,这里设置为true,表示启用。
7. 设置主键策略为自动递增。
8. 设置是否生成BaseColumnList,这里设置为true,表示生成。
9. 设置是否生成BaseResultMap,这里设置为true,表示生成。
10. 设置是否覆盖已有文件,这里设置为true,表示覆盖。
11. 将GlobalConfig对象设置到mpg中。
配置数据源。
// 数据源配置
DataSourceConfig dsc = new DataSourceConfig();
dsc.setUrl("jdbc:mysql://localhost:3306/codingmore?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai");
dsc.setDriverName("com.mysql.cj.jdbc.Driver");
dsc.setUsername("root");
dsc.setPassword("123");
mpg.setDataSource(dsc);
第五步,配置包。
// 包配置
PackageConfig pc = new PackageConfig();
pc.setParent("top.codingmore.mpg");
更多配置项可以到官方查看:
完整代码如下所示:
public class CodeGenerator {
public static void main(String[] args) {
// 代码生成器
AutoGenerator mpg = new AutoGenerator();
// 全局配置
GlobalConfig gc = new GlobalConfig();
String projectPath = System.getProperty("user.dir");
gc.setOutputDir(projectPath + "/src/main/java");
gc.setAuthor("藏三");
gc.setOpen(false);
gc.setDateType(DateType.ONLY_DATE);
gc.setSwagger2(true);
gc.setIdType(IdType.AUTO);
gc.setBaseColumnList(true);
gc.setBaseResultMap(true);
gc.setFileOverride(true);
mpg.setGlobalConfig(gc);
// 数据源配置
DataSourceConfig dsc = new DataSourceConfig();
dsc.setUrl("jdbc:mysql://localhost:3306/codingmore?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai");
dsc.setDriverName("com.mysql.cj.jdbc.Driver");
dsc.setUsername("root");
dsc.setPassword("1qazdsad");
mpg.setDataSource(dsc);
// 包配置
PackageConfig pc = new PackageConfig();
pc.setParent("top.codingmore.mpg");
mpg.setPackageInfo(pc);
mpg.execute();
}
}
再来看一下运行后的效果,可以看到数据库表对应的 controller、service、entity、mapper 等等全有了。
标签:AutoGenerator,mpg,Spring,Boot,gc,MyBatis,true,dsc From: https://blog.csdn.net/qq_64948664/article/details/137142681