@SpringBootTest
public class AppletTest {
@Resource
private DataSource dataSource;
@Test
public void genCode() {
//需要配置
String author = "wbli"; //作者
String packageName = "net.sbuxcf.ods"; //项目主路径包名(com.boot01.test01)
String dbTables = "nt_order,nt_order_line,nt_order_line_discount,nt_order_payment";
boolean enableSwagger = true;
// 1.数据源配置
DataSourceConfig.Builder dataSourceConfigBuilder = new DataSourceConfig.Builder(dataSource);
// 2.全局配置
GlobalConfig.Builder globalConfigBuilder = new GlobalConfig.Builder();
// 代码生成目录
String projectPath = System.getProperty("user.dir");
globalConfigBuilder.outputDir(projectPath + "/src/main/java");
// 作者
globalConfigBuilder.author(author);
// 结束时是否打开文件夹
globalConfigBuilder.disableOpenDir();
// 实体属性Swagger2注解
if (enableSwagger) {
globalConfigBuilder.enableSwagger();
}
// 3.包配置
PackageConfig.Builder packageConfigBuilder = new PackageConfig.Builder();
packageConfigBuilder.parent(packageName); //项目包名
//都有默认值 配置实体、mapper、service、controller的包名
//packageConfigBuilder.entity("entity");
// 4.策略配置
StrategyConfig.Builder strategyConfigBuilder = new StrategyConfig.Builder();
// 设置需要映射的表名 用逗号分割
strategyConfigBuilder.addInclude(dbTables.split(","));
// 下划线转驼峰
strategyConfigBuilder.entityBuilder().naming(NamingStrategy.underline_to_camel);
strategyConfigBuilder.entityBuilder().columnNaming(NamingStrategy.underline_to_camel);
// 生成的接口不以I开头
strategyConfigBuilder.serviceBuilder().formatServiceFileName("%sService");
// entity的Lombok
strategyConfigBuilder.entityBuilder().enableLombok();
// 逻辑删除
strategyConfigBuilder.entityBuilder().logicDeleteColumnName("deleted");
strategyConfigBuilder.entityBuilder().logicDeletePropertyName("deleted");
// 自动填充
// 创建时间
IFill gmtCreate = new Property("create_time", FieldFill.INSERT);
// 更新时间
IFill gmtModified = new Property("update_time", FieldFill.INSERT_UPDATE);
strategyConfigBuilder.entityBuilder().addTableFills(gmtCreate, gmtModified);
//生成类的时候去掉字段的is前缀
strategyConfigBuilder.entityBuilder().enableRemoveIsPrefix();
// 乐观锁
strategyConfigBuilder.entityBuilder().versionColumnName("version");
strategyConfigBuilder.entityBuilder().versionPropertyName("version");
strategyConfigBuilder.entityBuilder().superClass(BaseEntity.class);
strategyConfigBuilder.entityBuilder().addSuperEntityColumns("id", "createTime", "updateTime", "isDeleted", "version", "createBy", "updateBy");
// 使用RestController
strategyConfigBuilder.controllerBuilder().enableRestStyle();
// 将请求地址转换为驼峰命名,如 http://localhost:8080/hello_id_2
strategyConfigBuilder.controllerBuilder().enableHyphenStyle();
// 创建代码生成器对象,加载配置 对应1.2.3.4步
AutoGenerator autoGenerator = new AutoGenerator(dataSourceConfigBuilder.build());
autoGenerator.global(globalConfigBuilder.build());
autoGenerator.packageInfo(packageConfigBuilder.build());
autoGenerator.strategy(strategyConfigBuilder.build());
// 执行
autoGenerator.execute();
}
}
mybatis-plus代码生成器
于 2021-03-05 21:43:00 首次发布