代码生成器:mybatis-plus-generator自定义模板生成 dto、vo、convertor
时间: 2023-08-06 22:01:45 浏览: 179
MyBatis-Plus 是一个 MyBatis 的增强工具,提供了许多方便使用的功能。其中之一就是 MyBatis-Plus Generator,它可以根据数据库表结构自动生成基础的 Mapper、Model、Service、Controller 层代码,省去了很多重复的工作。
不过,MyBatis-Plus Generator 生成的代码可能不太符合我们的需求,比如不支持生成 DTO、VO、Convertor 等类。这时候我们就需要自定义模板来生成这些类。下面我来介绍一下如何自定义模板生成 DTO、VO、Convertor。
1. 新建模板文件
在 MyBatis-Plus Generator 的资源目录下,找到模板文件所在的目录。一般是在 `templates/entity` 目录下。在这个目录下新建三个文件:
- dto.java.vm
- vo.java.vm
- convertor.java.vm
这三个文件分别对应生成 DTO、VO、Convertor 的模板。
2. 编写模板文件
以 `dto.java.vm` 为例,下面是一个简单的模板代码:
```
package ${package}.dto;
import lombok.Data;
@Data
public class ${className}Dto {
#foreach($column in $table.columns)
/**
* ${column.columnComment}
*/
private ${column.javaType} ${column.propertyName};
#end
}
```
这个模板会生成一个名为 `${className}Dto` 的 DTO 类,其中 `${className}` 是表对应的类名。模板通过 `#foreach` 循环遍历表的所有列,生成对应的属性。
`vo.java.vm` 和 `convertor.java.vm` 的模板代码类似,这里就不再赘述了。
3. 修改配置文件
在 MyBatis-Plus Generator 的配置文件 `generatorConfig.xml` 中,找到 `table` 标签下的 `property` 标签。在这个标签下添加三个属性:
```
<property name="dtoTargetPackage" value="com.example.dto"/>
<property name="voTargetPackage" value="com.example.vo"/>
<property name="convertorTargetPackage" value="com.example.convertor"/>
```
这三个属性分别指定生成的 DTO、VO、Convertor 类所在的包名。
接着,在 `table` 标签下的 `generatedKey` 标签后面添加以下代码:
```
<property name="dtoTemplate" value="templates/entity/dto.java.vm"/>
<property name="voTemplate" value="templates/entity/vo.java.vm"/>
<property name="convertorTemplate" value="templates/entity/convertor.java.vm"/>
```
这些代码分别指定生成 DTO、VO、Convertor 的模板文件路径。
4. 运行 MyBatis-Plus Generator
最后,运行 MyBatis-Plus Generator,它会自动根据模板文件生成 DTO、VO、Convertor 等类。生成的类会放在指定的包中,可以随时使用。
阅读全文