版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/v2sking/article/details/79000718
mapper-plugin-plus Mapper插件扩展
2.generatorConfig.xml <context>节点配置插件
3按照mybatis generator插件配置相关包路径,文件路径
具体参考官网: http://www.mybatis.org/generator/
mybatis通用mapper参考: https://mapperhelper.github.io/docs/
即可生成扩展的mybatis mapper model
4.生成的模型文件示例:
继承自MapperPlugin,主要扩展了以下功能:
- 生成的模型是否实现序列化接口,默认为否
- 模型中字段是否添加数据库字段和java字段枚举 默认为否(主要用于selectByExample的Criteria条件属性取值)
- 模型是否增加swagger注解 默认为否
- 模型中setter方法是否返回模型本身(链式调用) 默认为否
- 模型中字段是否增加@ColumnType(jdbcType)注解 ,用于支持oracle版本 mapper insert方法(不带selective)插入数据库是由于字段为空而报错,默认为否
码云地址:https://gitee.com/luanhaoyu/mapper-plugin-plus
使用方法:
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<!-- 采用1.3.5版本 1.3.3不能覆盖xml -->
<version>1.3.5</version>
<configuration>
<configurationFile>${basedir}/src/main/resources/generator/generatorConfig.xml</configurationFile>
<overwrite>true</overwrite>
<verbose>true</verbose>
</configuration>
<dependencies>
<dependency>
<groupId>tk.mybatis</groupId>
<artifactId>mapper</artifactId>
<version>${tk-mybatis-version}</version>
</dependency>
<!--对应数据库驱动-->
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc6</artifactId>
<version>11.2.0.3</version>
</dependency>
<dependency>
<groupId>com.lhy</groupId>
<artifactId>mapper-plugin-plus</artifactId>
<version>1.0.0</version>
</dependency>
</dependencies>
</plugin>
2.generatorConfig.xml <context>节点配置插件
<plugin type="com.lhy.mybatis.plugin.HyMapperPlugin">
<property name="mappers" value="tk.mybatis.mapper.common.Mapper" />
<property name="caseSensitive" value="true" />
<!-- 实现序列化接口 默认false -->
<property name="implementSerializableInteface" value="true" />
<!-- 实体类增加字段名称枚举 默认false -->
<property name="modelFieldEnum" value="true" />
<!-- setter方法链式调用(返回this) 默认false -->
<property name="setterMethodChainEnabled" value="true" />
<!-- 启用swagger注解 默认false-->
<property name="swaggerApiEnabled" value="true" />
<!-- columnType注解启用 默认false-->
<property name="columnTypeEnabled" value="true" />
</plugin>
3按照mybatis generator插件配置相关包路径,文件路径
具体参考官网: http://www.mybatis.org/generator/
mybatis通用mapper参考: https://mapperhelper.github.io/docs/
执行命令
mvn mybatis-generator:generate即可生成扩展的mybatis mapper model
4.生成的模型文件示例:
package com.wisedu.zzfw.template.dictionary.model;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import javax.persistence.*;
import org.apache.ibatis.type.JdbcType;
import tk.mybatis.mapper.annotation.ColumnType;
@Table(name = "T_DM_BJ")
@ApiModel("DmBj(班级)")
public class DmBj implements Serializable {
/**
* 主键id
*/
@Id
@Column(name = "WID")
@GeneratedValue(strategy = GenerationType.IDENTITY, generator = "select lower(sys_guid()) from dual")
@ApiModelProperty(value ="主键id",required = false)
@ColumnType(jdbcType=JdbcType.VARCHAR)
private String wid;
/**
* 班级代码
*/
@Column(name = "BJDM")
@ApiModelProperty(value ="班级代码",required = false)
@ColumnType(jdbcType=JdbcType.VARCHAR)
private String bjdm;
/**
* 班级简称
*/
@Column(name = "BJJC")
@ApiModelProperty(value ="班级简称",required = false)
@ColumnType(jdbcType=JdbcType.VARCHAR)
private String bjjc;
private static final long serialVersionUID = 1L;
/**
* 获取主键id
*
* @return WID - 主键id
*/
public String getWid() {
return wid;
}
/**
* 设置主键id
*
* @param wid 主键id
*/
public DmBj setWid(String wid) {
this.wid = wid;
return this;
}
/**
* 获取班级代码
*
* @return BJDM - 班级代码
*/
public String getBjdm() {
return bjdm;
}
/**
* 设置班级代码
*
* @param bjdm 班级代码
*/
public DmBj setBjdm(String bjdm) {
this.bjdm = bjdm;
return this;
}
/**
* 获取班级简称
*
* @return BJJC - 班级简称
*/
public String getBjjc() {
return bjjc;
}
/**
* 设置班级简称
*
* @param bjjc 班级简称
*/
public DmBj setBjjc(String bjjc) {
this.bjjc = bjjc;
return this;
}
public enum FieldEnum {
WID("wid","WID"),
BJDM("bjdm","BJDM"),
BJMC("bjmc","BJMC");
private String javaFieldName;
private String dbFieldName;
FieldEnum(String javaFieldName, String dbFieldName) {
this.javaFieldName = javaFieldName;
this.dbFieldName = dbFieldName;
}
public String javaFieldName() {
return javaFieldName;
}
public String dbFieldName() {
return dbFieldName;
}
}
}