代码生成器:mybatis-plus-generator自定义模板生成 dto、vo、convertor
时间: 2023-05-08 14:00:08 浏览: 342
Mybatis-plus-generator是一个基于Mybatis-Plus框架的代码生成器。除了自动生成实体类、mapper以及对应的xml文件外,还可以使用自定义模板生成dto、vo、convertor。
在使用Mybatis-plus-generator自定义模板生成dto、vo、convertor时,我们需要先创建模板文件,模板文件主要包含模板语法和模板变量。模板语法是一种自定义的语言,用于对变量进行操作和组装,包括if语句、for循环等。而模板变量则是我们预先定义好的变量,在模板中可以直接使用。
在模板文件中,我们可以使用以下模板变量:
entity:生成实体类的类对象。
entityName:生成实体类的类名。
fieldList:生成实体类中的所有成员变量列表。
field:生成实体类中的成员变量对象。
fieldName:生成实体类中的成员变量名。
fieldType:生成实体类中的成员变量类型。
columnName:生成实体类中对应的数据库表的列名。
通过使用模板语法和模板变量,我们可以自定义生成我们所需的dto、vo、convertor等文件,从而满足我们的需求。
总之,使用Mybatis-plus-generator自定义模板生成dto、vo、convertor是非常方便和实用的,可以大大提高我们的编程效率和代码质量。
相关问题
代码生成器:mybatis-plus-generator自定义模板的参数如何设置
Mybatis-Plus Generator是基于Mybatis-Generator的扩展,支持自定义代码生成器模板。
自定义模板的参数设置步骤如下:
1. 新建自定义模板文件
在Mybatis-Plus Generator的classpath:templates目录下新建自定义模板文件,例如在该目录下新建一个MyMapper.xml.vm文件。
2. 在代码生成器配置文件中配置自定义模板路径
在代码生成器的配置文件中配置自定义模板路径,在该文件中找到templateEngine节点下的velocityTemplatePath节点,并将其值设置为自定义模板文件所在目录的绝对路径。
例如:
```
<templateEngine>
<type>velocity</type>
<velocity>
<properties>
<property>
<name>file.resource.loader.path</name>
<value>/Users/username/mybatis-plus-generator/templates</value>
</property>
</properties>
</velocity>
</templateEngine>
```
3. 设置自定义模板参数
在自定义模板文件中,使用Velocity模板语言来设置自定义参数。例如,在MyMapper.xml.vm文件中添加以下内容:
```
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="$packageName.$moduleName.mapper.$entityNameMapper">
<resultMap id="BaseResultMap" type="$packageName.$moduleName.entity.$entityName">
#foreach($column in $table.columns)
<result column="$column.columnName" property="$column.propertyName" jdbcType="$column.jdbcType" />
#end
</resultMap>
</mapper>
```
在该模板中,使用了$packageName、$moduleName、$entityName等参数,这些参数需要在代码生成器的配置文件中进行设置。
在代码生成器的配置文件中找到strategyConfig节点下的superEntityClass、entityLombokModel、entityColumnConstant、entityBuilderModel、controllerMappingHyphenStyle、versionFieldName、logicDeleteFieldName、tablePrefix、fieldPrefix、include、exclude、entityTableFieldAnnotationEnable等节点,将其值设置为需要的参数值。
例如:
```
<strategyConfig>
<superEntityClass>com.baomidou.mybatisplus.extension.activerecord.Model</superEntityClass>
<entityLombokModel>true</entityLombokModel>
<entityColumnConstant>true</entityColumnConstant>
<entityBuilderModel>true</entityBuilderModel>
<controllerMappingHyphenStyle>true</controllerMappingHyphenStyle>
<versionFieldName>version</versionFieldName>
<logicDeleteFieldName>deleted</logicDeleteFieldName>
<tablePrefix>sys_</tablePrefix>
<fieldPrefix>sys_</fieldPrefix>
<include>sys_user,sys_role,sys_permission</include>
<exclude>sys_log</exclude>
<entityTableFieldAnnotationEnable>true</entityTableFieldAnnotationEnable>
</strategyConfig>
```
以上是自定义模板的参数设置步骤,按照这些步骤进行设置即可。
代码生成器:mybatis-plus-generator freemaker和velocity区别
MyBatis-Plus-Generator 是一款基于 MyBatis-Plus 框架的代码生成器,支持使用 Freemaker 或 Velocity 两种模板引擎来生成代码。
Freemaker 和 Velocity 都是 Java 中常用的模板引擎,它们的主要区别如下:
1. 语法:Freemaker 使用类似于 HTML 的语法,而 Velocity 使用类似于 Java 的语法。
2. 变量引用:在 Freemaker 中,变量使用 `${variable}` 的形式引用;在 Velocity 中,则使用 `$variable` 的形式引用。
3. 指令:Freemaker 的指令使用 `<#directive>` 的形式,而 Velocity 使用 `#directive` 的形式。
4. 控制语句:在 Freemaker 中,控制语句使用 `<#if>`、`<#else>`、`<#foreach>` 等标签来实现;在 Velocity 中,则使用 `#if`、`#else`、`#foreach` 等指令来实现。
总体来说,Freemaker 更加简洁易懂,但 Velocity 更加灵活强大。在使用 MyBatis-Plus-Generator 时,可以根据个人喜好和项目需求来选择使用哪种模板引擎。
阅读全文