mybatis plus代码生成器版本升级,改用建造者模式了,废话少说上代码。
public static void main(String[] args) {
FastAutoGenerator.create("url", "usename", "password")
.globalConfig(builder -> {
builder.author("author") // 设置作者
.outputDir(System.getProperty("user.dir") + "/src/main/java")// 指定输出目录
.disableOpenDir();
})
.dataSourceConfig(builder -> builder.typeConvertHandler((globalConfig, typeRegistry, metaInfo) -> {
int typeCode = metaInfo.getJdbcType().TYPE_CODE;
if (typeCode == Types.SMALLINT) {
// 自定义类型转换
return DbColumnType.INTEGER;
}
return typeRegistry.getColumnType(metaInfo);
}))
.packageConfig(builder -> {
builder.parent("com.mdfp") // 设置父包名
.moduleName("XXX")// 设置父包模块名
.mapper("dao.mapper") //我的mapper路径是在dao下面的,简单点说mapper文件在 parent+moduleName+mapper下
.pathInfo(Collections.singletonMap(OutputFile.xml, System.getProperty("user.dir") + "/src/main/resources/mapper/mysql")); // 设置mapperXml生成路径
})
.strategyConfig((scanner, builder) -> {
builder.addInclude(getTables(scanner.apply("请输入表名,多个英文逗号分隔?所有输入 all")))// 设置需要生成的表名
.addTablePrefix("XXX_")// 如表名为XXX_abc,生成的类为 abc
.entityBuilder()
.enableLombok() //lombok注解
.enableChainModel() //链式调用注解
.enableTableFieldAnnotation() //添加@TableField注解
.logicDeleteColumnName("DELETE_FLAG") //逻辑删除字段
.naming(NamingStrategy.underline_to_camel) //表名驼峰
.columnNaming(NamingStrategy.underline_to_camel); //字段驼峰
})
.templateEngine(new FreemarkerTemplateEngine()) // 使用Freemarker引擎模板,默认的是Velocity引擎模板
.templateConfig(builder -> builder.controller("")) // 不生成controller
.execute();
}
//交互式输入表名
static List<String> getTables(String tables) {
return "all".equals(tables) ? Collections.emptyList() : Arrays.asList(tables.split(","));
}
.templateConfig(builder -> builder.controller(“”))可设置不生成controller