1.安装依赖
<dependency>
<groupId>com.mybatis-flex</groupId>
<artifactId>mybatis-flex-spring-boot3-starter</artifactId>
<version>1.9.2</version>
</dependency>
<dependency>
<groupId>com.mybatis-flex</groupId>
<artifactId>mybatis-flex-processor</artifactId>
<version>1.9.2</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.mybatis-flex</groupId>
<artifactId>mybatis-flex-codegen</artifactId>
<version>1.8.3</version>
</dependency>
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-openapi3-jakarta-spring-boot-starter</artifactId>
<version>4.4.0</version>
</dependency>
<dependency>
<groupId>io.swagger</groupId>
<artifactId>swagger-annotations</artifactId>
<version>1.6.2</version>
</dependency>
2.CodeGen
package com.hubu.mybatisflex.config;
import com.mybatisflex.codegen.Generator;
import com.mybatisflex.codegen.config.ColumnConfig;
import com.mybatisflex.codegen.config.EntityConfig;
import com.mybatisflex.codegen.config.GlobalConfig;
import com.zaxxer.hikari.HikariDataSource;
public class Codegen {
public static void main(String[] args) {
//配置数据源
HikariDataSource dataSource = new HikariDataSource();
dataSource.setJdbcUrl("jdbc:mysql://127.0.0.1:3307/blog?characterEncoding=utf-8");
dataSource.setUsername("root");
dataSource.setPassword("root");
GlobalConfig globalConfig = createGlobalConfigUseStyle();
//通过 datasource 和 globalConfig 创建代码生成器
Generator generator = new Generator(dataSource, globalConfig);
//生成代码
generator.generate();
}
public static GlobalConfig createGlobalConfigUseStyle() {
//创建配置内容
GlobalConfig globalConfig = new GlobalConfig();
//1.注释配置
globalConfig.getJavadocConfig()
.setAuthor("331126135@qq.com");
//2.设置根包
globalConfig.getPackageConfig()
.setBasePackage("com.hubu.mybatisflex");
//3.设置表前缀和只生成哪些表,setGenerateTable 未配置时,生成所有表
globalConfig.getStrategyConfig()
.setTablePrefix("blog_")
.setGenerateTable("blog_user");
//4.设置生成 entity 并启用 Lombok
globalConfig.enableEntity()
.setWithLombok(true)
.setWithSwagger(true)
.setSwaggerVersion(EntityConfig.SwaggerVersion.DOC)
//覆盖
.setOverwriteEnable(true)
.setJdkVersion(21);
//设置生成 mapper
globalConfig.enableController();
globalConfig.enableService();
globalConfig.enableServiceImpl();
globalConfig.enableMapper();
globalConfig.enableMapperXml();
// globalConfig.enablePackageInfo();
// globalConfig.enableTableDef();
//可以单独配置某个列
// ColumnConfig columnConfig = new ColumnConfig();
// columnConfig.setColumnName("tenant_id");
// columnConfig.setLarge(true);
// columnConfig.setVersion(true);
// globalConfig.getStrategyConfig()
// .setColumnConfig("tb_account", columnConfig);
return globalConfig;
}
}