- 首先,在项目的 pom.xml 文件中添加如下依赖:
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.4.3</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.20</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.25</version>
</dependency>
- 然后,创建一个代码生成器类,例如:
import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.generator.AutoGenerator;
import com.baomidou.mybatisplus.generator.config.DataSourceConfig;
import com.baomidou.mybatisplus.generator.config.GlobalConfig;
import com.baomidou.mybatisplus.generator.config.PackageConfig;
import com.baomidou.mybatisplus.generator.config.StrategyConfig;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
public class CodeGenerator {
public static void main(String[] args) {
// 1. 全局配置
GlobalConfig globalConfig = new GlobalConfig();
globalConfig.setOutputDir(System.getProperty("user.dir") + "/src/main/java") // 生成文件的输出目录
.setFileOverride(true) // 是否覆盖已有文件
.setActiveRecord(true) // 开启 ActiveRecord 模式
.setEnableCache(false) // 关闭 XML 二级缓存
.setBaseResultMap(true) // 开启 BaseResultMap
.setBaseColumnList(true) // 开启 BaseColumnList
.setAuthor("Your Name") // 作者名称
.setSwagger2(true) // 开启 Swagger2 模式
.setServiceName("%sService"); // Service 命名方式,注意 %s 会自动填充表实体属性!
// 2. 数据源配置
DataSourceConfig dataSourceConfig = new DataSourceConfig();
dataSourceConfig.setDbType(DbType.MYSQL) // 数据库类型
.setUrl("jdbc:mysql://localhost:3306/test?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai") // 数据库 URL
.setUsername("root") // 数据库用户名
.setPassword("123456") // 数据库密码
.setDriverName("com.mysql.cj.jdbc.Driver"); // 数据库驱动类名
// 3. 策略配置
StrategyConfig strategyConfig = new StrategyConfig();
strategyConfig.setCapitalMode(true) // 是否大写命名
.setNaming(NamingStrategy.underline_to_camel) // 数据库表映射到实体的命名策略
.setInclude("table_name_1", "table_name_2") // 需要生成代码的表名
.setEntityLombokModel(true); // 开启 Lombok 模型
// 4. 包名配置
PackageConfig packageConfig = new PackageConfig();
packageConfig.setParent("com.example.demo") // 父包名
.setMapper("mapper") // Mapper 包名
.setService("service") // Service 包名
.setServiceImpl("service.impl") // ServiceImpl 包名
.setController("controller") // Controller 包名
.setEntity("entity"); // Entity 包名
// 5. 代码生成器配置
AutoGenerator autoGenerator = new AutoGenerator();
autoGenerator.setGlobalConfig(globalConfig) // 全局配置
.setDataSource(dataSourceConfig) // 数据源配置
.setStrategy(strategyConfig) // 策略配置
.setPackageInfo(packageConfig); // 包名配置
autoGenerator.execute(); // 执行代码生成操作
}
}