MyBatis-flex自动生成代码类,读取配置文件里的数据库信息
<dependency>
<groupId>com.mybatis-flex</groupId>
<artifactId>mybatis-flex-codegen</artifactId>
<version>1.5.5</version>
</dependency>
package cn.ximiyun.huameng;
import cn.hutool.setting.dialect.Props;
import com.mybatisflex.codegen.Generator;
import com.mybatisflex.codegen.config.GlobalConfig;
import com.mybatisflex.codegen.config.TableConfig;
import com.mybatisflex.codegen.dialect.JdbcTypeMapping;
import com.zaxxer.hikari.HikariDataSource;
import java.time.LocalDateTime;
import java.util.Date;
/**
* MyBatis-flex自动生成代码类
*/
public class CodeGenerator {
public static void main(String[] args) {
String projectPath = System.getProperty("user.dir");
Props application = new Props(projectPath + "/src/main/resources/application.properties");
String os = "base";
String packageName = "cn.ximiyun.huameng." + os;
String dataSourceName = application.getStr("spring.datasource.username");
String dataSourcePassword = application.getStr("spring.datasource.password");
String dataSourceUrl = application.getStr("spring.datasource.url");
//需要生成的表
String[] tables = "base_admin_user_info".split(",");
//是否生成model
boolean isModel = true;
//是否生成dao
boolean isDao = true;
//是否生成Mapper
boolean isMapper = true;
//配置数据源
HikariDataSource dataSource = new HikariDataSource();
dataSource.setJdbcUrl(dataSourceUrl+"&useInformationSchema=true");
dataSource.setUsername(dataSourceName);
dataSource.setPassword(dataSourcePassword);
//创建配置内容
GlobalConfig globalConfig = new GlobalConfig();
//设置根包
globalConfig.setBasePackage(packageName);
globalConfig.setEntityPackage(packageName+".model");
globalConfig.setMapperPackage(packageName+".dao");
globalConfig.setMapperXmlPath(projectPath.concat("/src/main/resources/mapper/"+os));
globalConfig.getJavadocConfig().setAuthor("GMQ");
//设置表前缀和只生成哪些表
globalConfig.setGenerateTable(tables);
//设置生成 entity 并启用 Lombok
globalConfig.setEntityGenerateEnable(isModel);
globalConfig.setEntityWithLombok(true);
globalConfig.setEntityOverwriteEnable(true);
// globalConfig.setTableDefGenerateEnable(isModel);
// globalConfig.setTableDefOverwriteEnable(true);
// globalConfig.setTableDefPropertiesNameStyle(TableDefConfig.NameStyle.UPPER_CAMEL_CASE);
//设置生成 mapper
globalConfig.setMapperGenerateEnable(isDao);
globalConfig.setMapperClassSuffix("Dao");
globalConfig.setMapperXmlGenerateEnable(isMapper);
//表设置
TableConfig tableConfig = new TableConfig();
tableConfig.setMapperGenerateEnable(false);
globalConfig.setTableConfig(tableConfig);
JdbcTypeMapping.registerMapping(LocalDateTime.class, Date.class);
//通过 datasource 和 globalConfig 创建代码生成器
Generator generator = new Generator(dataSource, globalConfig);
//生成代码
generator.generate();
}
}
生成效果如图