mybatis-plus自定义模板引擎
时间: 2023-11-16 14:04:34 浏览: 160
Mybatis-plus提供了基于velocity的模板引擎,如果需要自定义模板引擎,需要实现com.baomidou.mybatisplus.generator.config.ITypeConvert接口,并在代码生成器中设置自定义typeConvert。
具体步骤如下:
1. 实现ITypeConvert接口,根据数据库字段类型返回对应的Java类型
2. 在代码生成器中设置自定义typeConvert,示例代码如下:
```
// 自定义字段类型转换
strategyConfig.setTypeConvert(new ITypeConvert() {
@Override
public IColumnType processTypeConvert(GlobalConfig globalConfig, String fieldType) {
if ("datetime".equals(fieldType.toLowerCase())) {
return DbColumnType.DATE;
}
return new MySqlTypeConvert().processTypeConvert(globalConfig, fieldType);
}
});
```
相关问题
mybatis-plus自定义代码生成
mybatis-plus是一个支持自定义代码生成的框架。如果需要根据实体类生成自定义controller、service、mapper、entity文件,可以使用mybatis-plus的自定义引擎功能。具体使用方式如下:
1. 首先,引用mybatis-plus的源码,可以从以下链接获取:
2. 在项目中注入配置,在注入配置的过程中,可以使用自定义模板和map,根据项目需要进行封装。示例代码如下:
3. 使用自定义模板引擎,可以选择EnhanceVelocityTemplaEngine作为模板引擎。示例代码如下:
4. 确保正确引用了mybatis-plus,并设置了自定义引擎文件。自定义引擎文件可以是多种格式,一般使用vm资源。
通过以上步骤,你就可以使用mybatis-plus的自定义代码生成功能来生成自定义的controller、service、mapper、entity文件了。<span class="em">1</span><span class="em">2</span><span class="em">3</span><span class="em">4</span>
代码生成器:mybatis-plus-generator自定义模板生成 dto、vo、convertor
Mybatis-Plus Generator 是Mybatis-Plus 提供的代码生成器,可以快速生成 Mybatis-Plus 所需的 Entity、Mapper、Service、Controller 等类文件。但是默认生成的代码只包含 Entity 和 Mapper,如果需要生成其他文件如 DTO、VO、Convertor 等,则需要自定义模板来实现。
以下是使用 Mybatis-Plus Generator 自定义模板生成 DTO、VO、Convertor 的步骤:
1. 在 pom.xml 中添加依赖:
```xml
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>${mybatis-plus.version}</version>
</dependency>
```
2. 在 resources 目录下创建 mybatis-plus-generator 目录,并创建 generatorConfig.xml 配置文件,在其中配置需要生成的表名、文件路径、包名等信息。示例配置如下:
```xml
<generatorConfiguration>
<dataSource type="com.zaxxer.hikari.HikariDataSource">
<property name="driverClassName" value="${jdbc.driverClassName}" />
<property name="jdbcUrl" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
</dataSource>
<packageInfo>
<parent>com.example.demo</parent>
<dto>dto</dto>
<vo>vo</vo>
<convertor>convertor</convertor>
</packageInfo>
<strategy>
<tablePrefix>tbl_</tablePrefix>
<include>tbl_user</include>
</strategy>
<template>
<mapper>/templates/mapper.xml.vm</mapper>
<entity>/templates/entity.java.vm</entity>
<dto>/templates/dto.java.vm</dto>
<vo>/templates/vo.java.vm</vo>
<convertor>/templates/convertor.java.vm</convertor>
</template>
<globalConfig>
<outputDir>src/main/java</outputDir>
<fileOverride>true</fileOverride>
<open>false</open>
<enableCache>false</enableCache>
<author>mybatis-plus-generator</author>
<kotlin>false</kotlin>
</globalConfig>
</generatorConfiguration>
```
其中:
- dataSource:数据源配置
- packageInfo:包名配置,dto、vo、convertor 分别对应生成的文件夹
- strategy:生成策略,tablePrefix 为表前缀,include 为需要生成的表名
- template:模板配置,mapper.xml、entity、dto、vo、convertor 分别对应生成的文件类型和模板文件路径
- globalConfig:全局配置,outputDir 为输出文件夹,fileOverride 为是否覆盖已有文件,author 为作者名
3. 在 templates 目录下创建 dto.java.vm、vo.java.vm、convertor.java.vm 模板文件,并根据需要进行自定义。例如生成 DTO 文件的模板如下:
```java
package $packageInfo.dto;
import lombok.Data;
@Data
public class $!{tableInfo.name}DTO {
#foreach($field in $tableInfo.fields)
private $field.propertyType $field.propertyName;
#end
}
```
其中 $!{tableInfo.name} 表示表名,$field.propertyType 和 $field.propertyName 分别表示字段类型和字段名。
4. 在代码中使用 Mybatis-Plus Generator 生成代码。例如在 main 方法中调用 generate() 方法:
```java
public static void main(String[] args) {
AutoGenerator generator = new AutoGenerator();
generator.setTemplateEngine(new VelocityTemplateEngine());
generator.setTemplate(new TemplateConfig().setXml(null));
// 使用配置文件生成代码
generator.setConfig(new FileGeneratorConfigBuilder().getConfig());
generator.execute();
}
```
其中 setTemplateEngine() 设置模板引擎为 Velocity,setTemplate() 设置生成的 XML 文件为空,setConfig() 从配置文件中获取配置。
5. 运行 main 方法,即可生成对应的 DTO、VO、Convertor 文件。
阅读全文