MyBatis-Flex代码生成
引入依赖
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId>
</dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId>
</dependency><dependency><groupId>com.mysql</groupId><artifactId>mysql-connector-j</artifactId><scope>runtime</scope>
</dependency><dependency><groupId>com.zaxxer</groupId><artifactId>HikariCP</artifactId>
</dependency><dependency><groupId>com.mybatis-flex</groupId><artifactId>mybatis-flex-spring-boot-starter</artifactId><version>1.11.0</version>
</dependency><dependency><groupId>com.mybatis-flex</groupId><artifactId>mybatis-flex-codegen</artifactId><version>1.11.0</version>
</dependency>
代码实现
import com.mybatisflex.codegen.Generator;
import com.mybatisflex.codegen.config.ColumnConfig;
import com.mybatisflex.codegen.config.GlobalConfig;
import com.qiangesoft.mybatisflex.base.BaseEntity;
import com.zaxxer.hikari.HikariDataSource;/*** 代码生成工具类*/
public class CodegenUtil {public static void main(String[] args) {// 配置数据源HikariDataSource dataSource = new HikariDataSource();dataSource.setJdbcUrl("jdbc:mysql://127.0.0.1:3306/db_mybatisflex?useInformationSchema=true&useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2B8");dataSource.setUsername("root");dataSource.setPassword("root");// 创建配置内容,两种风格都可以。GlobalConfig globalConfig = createGlobalConfigUseStyle2();// 通过 datasource 和 globalConfig 创建代码生成器Generator generator = new Generator(dataSource, globalConfig);// 生成代码generator.generate();}/*** 常规风格*/public static GlobalConfig createGlobalConfigUseStyle1() {// 创建配置内容GlobalConfig globalConfig = new GlobalConfig();// 设置路径及根包globalConfig.setSourceDir("D:/work/code/boot-business/boot-business-mybatisflex/src/main/java");globalConfig.setBasePackage("com.qiangesoft.mybatisflex");globalConfig.setMapperXmlPath("D:/work/code/boot-business/boot-business-mybatisflex/src/main/resources/mapper");// 设置生成策略
// globalConfig.setTablePrefix("tb_");globalConfig.setGenerateTable("sys_user", "sys_dept");globalConfig.setUnGenerateTable("tb_test");globalConfig.setLogicDeleteColumn("deleted");globalConfig.setVersionColumn("version");// 设置 javadocglobalConfig.setAuthor("qiangesoft");globalConfig.setSince("1.0.0");// 设置生成 entityglobalConfig.setEntityGenerateEnable(true);globalConfig.setEntityWithLombok(true);
// globalConfig.setEntitySuperClass(BaseEntity.class);globalConfig.setEntityJdkVersion(11);// 设置生成 mapperglobalConfig.setMapperGenerateEnable(true);globalConfig.setMapperAnnotation(true);// 设置生成 mapper.xmlglobalConfig.setMapperXmlGenerateEnable(true);// 设置生成 serviceglobalConfig.setServiceGenerateEnable(true);// 设置生成 serviceImplglobalConfig.setServiceImplGenerateEnable(true);// 设置生成 controllerglobalConfig.setControllerGenerateEnable(true);globalConfig.setControllerRestStyle(true);
// globalConfig.setControllerRequestMappingPrefix("sys");// 单独配置某个列
// ColumnConfig columnConfig1 = new ColumnConfig();
// columnConfig1.setColumnName("create_time");
// columnConfig1.setOnInsertValue("now()");
//
// ColumnConfig columnConfig2 = new ColumnConfig();
// columnConfig2.setColumnName("update_time");
// columnConfig2.setOnUpdateValue("now()");
//
// globalConfig.setColumnConfig(columnConfig1);
// globalConfig.setColumnConfig(columnConfig2);// 指定表// globalConfig.setColumnConfig("tb_account", columnConfig);return globalConfig;}/*** 链式风格*/public static GlobalConfig createGlobalConfigUseStyle2() {// 创建配置内容GlobalConfig globalConfig = new GlobalConfig();// 设置路径及根包globalConfig.getPackageConfig().setSourceDir("D:/work/code/boot-business/boot-business-mybatisflex/src/main/java").setBasePackage("com.qiangesoft.mybatisflex").setMapperXmlPath("D:/work/code/boot-business/boot-business-mybatisflex/src/main/resources/mapper");// 设置生成策略globalConfig.getStrategyConfig()
// .setTablePrefix("sys_").setGenerateTable("sys_user", "sys_dept").setUnGenerateTable("tb_test").setIgnoreColumns("test").setLogicDeleteColumn("deleted").setVersionColumn("version");// 设置 javadocglobalConfig.getJavadocConfig().setAuthor("admin").setSince("1.0.0");// 设置生成 entityglobalConfig.enableEntity().setWithLombok(true).setAlwaysGenColumnAnnotation(true)// .setSuperClass(BaseEntity.class).setJdkVersion(11);// 设置生成 mapperglobalConfig.enableMapper().setMapperAnnotation(true);// 配置生成 mapper.xmlglobalConfig.enableMapperXml();// 设置生成 serviceglobalConfig.enableService();// 设置生成 serviceImplglobalConfig.enableServiceImpl();// 设置生成 controllerglobalConfig.enableController().setRestStyle(true).setRequestMappingPrefix("sys");// 单独配置某个列
// ColumnConfig columnConfig1 = new ColumnConfig();
// columnConfig1.setColumnName("create_time");
// columnConfig1.setOnInsertValue("now()");
//
// ColumnConfig columnConfig2 = new ColumnConfig();
// columnConfig2.setColumnName("update_time");
// columnConfig2.setOnUpdateValue("now()");
//
// globalConfig.getStrategyConfig()
// .setColumnConfig(columnConfig1)
// .setColumnConfig(columnConfig2);return globalConfig;}}
生成结果