文章目录
一、引入依赖
<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"))
时,包名与实际工程包目录结构保持一致,这样生成的代码不用修改可以直接复制。