mybatis代码生成器扩展插件 mapper-plugin-plus

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/v2sking/article/details/79000718
mapper-plugin-plus Mapper插件扩展


继承自MapperPlugin,主要扩展了以下功能:


  1. 生成的模型是否实现序列化接口,默认为否
  2. 模型中字段是否添加数据库字段和java字段枚举 默认为否(主要用于selectByExample的Criteria条件属性取值)
  3. 模型是否增加swagger注解 默认为否
  4. 模型中setter方法是否返回模型本身(链式调用) 默认为否
  5. 模型中字段是否增加@ColumnType(jdbcType)注解 ,用于支持oracle版本 mapper insert方法(不带selective)插入数据库是由于字段为空而报错,默认为否


码云地址:https://gitee.com/luanhaoyu/mapper-plugin-plus


使用方法:


1.pom.xml增加mybatis generator生成插件

<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;
        }
    }
}




猜你喜欢

转载自blog.csdn.net/v2sking/article/details/79000718
今日推荐