一、pom.xml
<!--整合mybatis plus https://baomidou.com/-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.2</version>
</dependency>
<!-- mp代码生成器 -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.5.2</version>
</dependency>
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
</dependency>
<!-- mysql -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
二、CodeGenerator.java
package com.rating;
import com.baomidou.mybatisplus.generator.FastAutoGenerator;
import com.baomidou.mybatisplus.generator.config.OutputFile;
import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;
import java.util.Collections;
public class CodeGenerator {
public static void main(String[] args) {
// 配置数据库
String url = "jdbc:mysql:///rating_manage";
String username = "root";
String password = "root";
String tables = "r_user"; // 设置需要生成的表名
String tablePrefix = "r_"; // 设置过滤表前缀
//String tables = "x_user,x_role,x_menu,x_user_role,x_role_menu";
// 配置路径
String projectPath = System.getProperty("user.dir"); // 项目路径
String outputDir = projectPath + "\\src\\main\\java"; // 指定输出目录
String packageName = "com.rating"; // 设置父包名
String moduleName = "system"; // 设置父包模块名
String mapperLocation = projectPath + "\\src\\main\\resources\\mapper\\" + moduleName; // 设置mapperXml生成路径
FastAutoGenerator.create(url, username, password)
.globalConfig(builder -> {
builder.outputDir(outputDir); // 指定输出目录
//.author("chwb") // 设置作者
//.enableSwagger() // 开启 swagger 模式
//.fileOverride(); // 覆盖已生成文件
})
.packageConfig(builder -> {
builder.parent(packageName) // 设置父包名
.moduleName(moduleName) // 设置父包模块名
.pathInfo(Collections.singletonMap(OutputFile.xml, mapperLocation)); // 设置mapperXml生成路径
})
.strategyConfig(builder -> {
builder.addInclude(tables) // 设置需要生成的表名
.addTablePrefix(tablePrefix) // 设置过滤表前缀
.entityBuilder().enableLombok() //entity 包开启 lombok
.controllerBuilder().enableRestStyle(); // controller 包开启RestController模式
})
.templateEngine(new FreemarkerTemplateEngine()) // 使用Freemarker引擎模板,默认的是Velocity引擎模板
.execute();
}
}
package com.rating;
import com.baomidou.mybatisplus.generator.FastAutoGenerator;
import com.baomidou.mybatisplus.generator.config.OutputFile;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;
import java.util.Collections;
public class CodeGenerator {
public static void main(String[] args) {
// 配置数据库
String url = "jdbc:mysql://sqlserver:3306/db_admin?useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2B8";
String username = "root";
String password = "123456";
//String tables = "sys_user,sys_role,sys_menu,sys_user_role,sys_role_menu";
String tables = "mod_info,mod_data"; // 设置需要生成的表名
String tablePrefix = "r_"; // 设置过滤表前缀
// 配置路径
String projectPath = System.getProperty("user.dir"); // 项目路径
String outputDir = projectPath + "/src/main/java"; // 指定输出目录
String packageName = "com.rating"; // 设置父包名
String moduleName = "modelManage"; // 设置父包模块名
String mapperLocation = projectPath + "/src/main/resources/mapper/" + moduleName; // 设置mapperXml生成路径
FastAutoGenerator.create(url, username, password)
.globalConfig(builder -> {
builder.outputDir(outputDir) // 指定输出目录
.author("chwb"); // 设置作者
//.enableKotlin()//开启 kotlin 模式
//.enableSwagger() // 开启 swagger 模式
//.fileOverride(); // 覆盖已生成文件
})
.packageConfig(builder -> {
builder.parent(packageName) // 设置父包名
.moduleName(moduleName) // 设置父包模块名
.pathInfo(Collections.singletonMap(OutputFile.xml, mapperLocation)); // 设置mapperXml生成路径
})
.strategyConfig(builder -> {
builder.addInclude(tables) // 设置需要生成的表名
//.addTablePrefix(tablePrefix) // 设置过滤表前缀
//Entity配置策略
.entityBuilder()
.naming(NamingStrategy.underline_to_camel) // 数据库表映射到实体的命名策略 这里是下划线转驼峰
.columnNaming(NamingStrategy.underline_to_camel) // 数据库字段表映射到实体的命名策略
.enableLombok() //entity 包开启 lombok
.superClass("BaseEntity") // 所以entity类的公共父类
.enableTableFieldAnnotation() // 加上字段注解@TableField
.entityBuilder().addSuperEntityColumns("id", "createTime", "updateTime", "status", "remark") // 添加父类公共字段 数据库写了就可以不加
//service策略配置
.serviceBuilder()
.formatServiceFileName("%sService") // 服务层接口名后缀,不生成带有'I'前缀的Service接口
//Controller策略配置
.controllerBuilder()
.enableRestStyle() // controller 包开启RestController模式
.superClass("BaseController")
.enableHyphenStyle(); // 开启驼峰转连字符 默认为false
})
.templateEngine(new FreemarkerTemplateEngine()) // 使用Freemarker引擎模板,默认的是Velocity引擎模板
.execute();
}
}