官网地址
https://baomidou.com/pages/981406/#%E5%85%A8%E5%B1%80%E9%85%8D%E7%BD%AE-globalconfig
官网地址相当于使用说明书,下面的用法,最好照着官网边查询边去做,通过实验去佐证结论。
pom引入包
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>${mybatis-plus-generator.version}</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${mysql.version}</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>${druid.version}</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>${mybatis-plus-boot-starter.version}</version>
</dependency>
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-engine-core</artifactId>
<version>${velocity-engine-core.version}</version>
</dependency>
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>${freemarker.version}</version>
</dependency>
代码实现
public class CodeGen {
public static void gen(List<String> tableNameArr) {
String url = "jdbc:mysql://192.168.0.120:3306/spyu_blog?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8&useSSL=false&allowPublicKeyRetrieval=true";
String username = "xxxx";
String password = "xxxxxxxxxxxxx";
String dirPath = System.getProperty("user.dir") + "/src/main/java";
String xmlPath = System.getProperty("user.dir") + "/src/main/java/com/sunpy/blog/xml";
FastAutoGenerator fastAutoGenerator = FastAutoGenerator.create(url, username, password);
/**
* 全局配置
*/
fastAutoGenerator.globalConfig(builder -> {
// 设置注释作者
builder.author("spyu")
// 禁止打开输出目录
.disableOpenDir()
// 开启swagger
.enableSwagger()
// 时间策略
.dateType(DateType.ONLY_DATE)
// 设置注释时间
.commentDate("yyyy-MM-dd")
// 输出到指定的文件夹位置
.outputDir(dirPath);
});
/**
* 包配置
*/
fastAutoGenerator.packageConfig(builder -> {
// 设置父包名
builder.parent("com.sunpy.blog")
// 设置controller包
.controller("controller")
// 设置dao接口包
.mapper("dao")
// 设置service服务接口包
.service("service")
// 设置service实现类包
.serviceImpl("service.impl")
// 设置po类包
.entity("po")
// 设置dto类包
.other("dto")
// 设置xml类包
.pathInfo(Collections.singletonMap(OutputFile.mapperXml, xmlPath));
});
/**
* 策略模式
*/
fastAutoGenerator.strategyConfig(builder -> {
// 设置要生成的表名
builder.addInclude(tableNameArr);
builder.entityBuilder()
// 开启 lombok 模型
.enableLombok()
// 开启链式模型
.enableChainModel()
// 数据表映射实体命名策略:默认下划线转驼峰underline_to_camel
.naming(NamingStrategy.underline_to_camel)
// 表字段映射实体属性命名规则:默认null,不指定按照naming执行
.columnNaming(NamingStrategy.underline_to_camel)
// 添加全局主键类型
.idType(IdType.AUTO)
// 格式化实体名称,%s取消首字母I
.formatFileName("%sPo");
builder.mapperBuilder()
// 开启mapper注解
.enableMapperAnnotation()
// 启用xml文件中的BaseResultMap生成
.enableBaseResultMap()
// 启用xml文件中的BaseColumnList
.enableBaseColumnList()
// 格式化Dao类名称
.formatMapperFileName("%sDao")
// 格式化xml文件名称
.formatXmlFileName("%sMapper");
builder.serviceBuilder()
//格式化 service 接口文件名称
.formatServiceFileName("%sService")
//格式化 service 实现类文件名称
.formatServiceImplFileName("%sServiceImpl");
builder.controllerBuilder()
// 开启生成@RestController控制器
.enableRestStyle()
.formatFileName("%sController");
});
fastAutoGenerator.execute();
}
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("article_content");
gen(list);
}
}
网友评论