文章目录

  • 一、引入依赖
  • 二、代码示例
  • 三、测试结果
    • 1、控制台输出
    • 2、生成的代码

一、引入依赖

		<dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-generator</artifactId>
            <version>${mybatis.plus.generator}</version>
            <scope>test</scope>
            <optional>true</optional>
        </dependency>
        
        <!-- mybatis-plus-generator中已有依赖,直接引入即可 -->
        <dependency>
            <groupId>org.freemarker</groupId>
            <artifactId>freemarker</artifactId>
            <scope>test</scope>
            <optional>true</optional>
        </dependency>

备注:这里mybatis-plus-generator的最新版本是3.5.2


二、代码示例


public class MybatisPlusCodeAutoGeneration {

	private static final String URL = "jdbc:mysql://localhost:3306/rbac";
	private static final String USERNAME = "root";
	private static final String PASSWORD = "root";

	/**
	 * 自动生成代码输出目录,这里默认类路径下的src/test/java/com/universe包下,即当前工程的test目录下。
	 */
	private static final String OUTPUT_DIR = System.getProperty("user.dir") + File.separator + "src/test/java/com/universe";

	public static void main(String[] args) {
		FastAutoGenerator.create(URL, USERNAME, PASSWORD)
			// 开启fileOverrride重新旧文件,disableOpenDir禁用代码生成后打开输出目录对话框
			.globalConfig(builder -> builder.author("liuyalou").fileOverride().disableOpenDir().outputDir(OUTPUT_DIR))
			// parent指定生成的代码在哪个包下,entity可以指定实体(DO)所在的包名
			.packageConfig(builder -> builder.parent("com.universe").entity("pojo.domain"))
			// addInclude指定包含的表名,不调用该方法默认为所有表生成代码;addTablePrefix可以过滤表前缀,即t_user变成user
			.strategyConfig(builder -> builder.addInclude("t_user").addTablePrefix("t_")
				// 禁用为实体类生成序列化ID;formatFileName格式化生成的实体类名称,即t_user -> UserDO
				.entityBuilder().disableSerialVersionUID().formatFileName("%sDO")
				// formatMapperFileName格式化Mapper接口名称,即t_user -> UserMapper
				// formatXmlFileName格式化Mapper.xml文件名称,即t_user -> UserMapper.xml
				.mapperBuilder().formatMapperFileName("%sMapper").formatXmlFileName("%sMapper")
				.build()
			)
			// MyBatis-Plus代码生成器是通过模板引擎来渲染文件的,默认模板引擎是Velocity,根据依赖我们使用Freemarker
			.templateEngine(new FreemarkerTemplateEngine())
			.execute();
	}

}

备注:
1、具体配置参考 MyBatis Plus代码生成器配置。
2、更多代码示例参考 MyBatis Plus Generator代码示例。


三、测试结果

1、控制台输出

16:43:03.444 [main] DEBUG com.baomidou.mybatisplus.generator.AutoGenerator - ==========================准备生成文件...==========================
16:43:03.910 [main] DEBUG com.baomidou.mybatisplus.generator.config.querys.MySqlQuery - 执行SQL:show table status WHERE 1=1  AND NAME IN ('t_user')
16:43:03.958 [main] DEBUG com.baomidou.mybatisplus.generator.config.querys.MySqlQuery - 返回记录数:1,耗时(ms):45
16:43:04.016 [main] DEBUG com.baomidou.mybatisplus.generator.config.querys.MySqlQuery - 执行SQL:show full fields from `t_user`
16:43:04.030 [main] DEBUG com.baomidou.mybatisplus.generator.config.querys.MySqlQuery - 返回记录数:8,耗时(ms):28
16:43:04.246 [main] DEBUG com.baomidou.mybatisplus.generator.AutoGenerator - ==========================文件生成完成!!!==========================

2、生成的代码

可以看到com.universe包下有自动生成的代码,如下:

备注:建议配置packageConfig(builder -> builder.parent("com.universe"))时,包名与实际工程包目录结构保持一致,这样生成的代码不用修改可以直接复制。

更多推荐

MyBatis-Plus代码生成器如何使用(最新版)