mybatis-plus-generator自动生成代码vm模板
时间: 2023-10-30 22:05:52 浏览: 277
Mybatis-Plus-Generator是一个基于Mybatis-Plus的代码生成器,它可以根据数据库表结构自动生成对应的Java实体类、Mapper接口以及XML文件等。而VM模板则是Mybatis-Plus-Generator使用的一种模板引擎,它可以根据用户自定义的模板文件生成对应的代码。用户可以根据自己的需求编写自己的模板文件,然后通过Mybatis-Plus-Generator生成对应的代码。在模板文件中,可以使用一些特定的语法来引用数据库表结构中的字段信息,从而生成对应的代码。
相关问题
代码生成器:mybatis-plus-generator自定义模板生成 dto、vo、convertor
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 等类。生成的类会放在指定的包中,可以随时使用。
mybatis-plus代码生成器自定义模板怎么处理
MyBatis-Plus代码生成器提供了自定义模板的功能,可以根据自己的需求生成对应的代码。下面是自定义模板的处理步骤:
1. 在代码生成器的配置文件中,设置自定义模板的路径。例如:
```
<property name="templatePath" value="/templates/mybatis-plus"/>
```
2. 在自定义模板路径下创建对应的模板文件。例如,创建一个模板文件 `Entity.java.vm`,用于生成实体类的代码。
3. 在模板文件中使用 Velocity 模板语言,编写生成代码的逻辑。例如:
```
package ${package_name}.${module_name}.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* <p>
* ${table_comment}
* </p>
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("${table_name}")
public class ${entity_name} {
private static final long serialVersionUID = 1L;
#foreach($field in $fields)
/**
* ${field.comment}
*/
private ${field.javaType} ${field.name};
#end
}
```
4. 在代码生成器中配置要使用的自定义模板。例如:
```
<property name="templateConfig">
<bean class="com.baomidou.mybatisplus.generator.config.TemplateConfig">
<property name="entity" value="/templates/mybatis-plus/Entity.java.vm"/>
<property name="mapper" value="/templates/mybatis-plus/Mapper.java.vm"/>
<property name="xml" value="/templates/mybatis-plus/Mapper.xml.vm"/>
<property name="service" value="/templates/mybatis-plus/Service.java.vm"/>
<property name="serviceImpl" value="/templates/mybatis-plus/ServiceImpl.java.vm"/>
<property name="controller" value="/templates/mybatis-plus/Controller.java.vm"/>
</bean>
</property>
```
在这个例子中,我们配置了生成实体类、Mapper接口、Mapper XML文件、Service接口、Service实现类和Controller类的模板路径。
5. 运行代码生成器,即可根据自定义模板生成对应的代码。
注意:自定义模板的命名必须与 MyBatis-Plus 内置模板的命名一致,才能正确覆盖内置模板。例如,要自定义生成实体类的模板,必须将模板文件命名为 `Entity.java.vm`。
阅读全文
相关推荐
















