MybatisGenerator自动生成代码 (带自定义注释)

说明: 适用于maven项目, mysql/oracle数据库, 开发工具: IDEA

1.配置generatorConfig.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfiguration
        PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
        "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
<generatorConfiguration>
    <!-- 引入配置文件 -->
    <!--<properties resource="application-test.properties"/>-->
    <!--<classPathEntry-->
            <!--location="C:\Users\ubeii\.m2\repository\mysql\mysql-connector-java\5.1.46\mysql-connector-java-5.1.46.jar"/>-->
    <context id="default" targetRuntime="MyBatis3">
        <!-- 生成的Java文件的编码 -->
        <property name="javaFileEncoding" value="UTF-8" />
        <!-- 格式化java代码 -->
        <property name="javaFormatter" value="org.mybatis.generator.api.dom.DefaultJavaFormatter" />
        <!-- JavaBean 实现 序列化 接口 -->
        <plugin type="org.mybatis.generator.plugins.SerializablePlugin"/>
        <!-- genenat entity时,生成toString -->
        <plugin type="org.mybatis.generator.plugins.ToStringPlugin" />
        <!-- 自定义物理分页  可生成支持Mysql数据的limit  不支持Oracle -->
        <!--<plugin type="org.mybatis.generator.plugins.page.PaginationPlugin" />-->
        <!-- 自定义查询指定字段  -->
        <!--<plugin type="org.mybatis.generator.plugins.field.FieldsPlugin" />-->
        <!-- 开启支持内存分页   可生成 支持内存分布的方法及参数
        <plugin type="org.mybatis.generator.plugins.RowBoundsPlugin" />
        -->
        <!-- generate entity时,生成hashcode和equals方法
        <plugin type="org.mybatis.generator.plugins.EqualsHashCodePlugin" />
         -->
        <!-- 此处是将Example改名为Criteria 当然 想改成什么都行~    -->
        <!--<plugin type="org.mybatis.generator.plugins.RenameExampleClassPlugin">-->
            <!--<property name="searchString" value="Example$" />-->
            <!--<!– 替换后  -->
            <!--<property name="replaceString" value="Criteria" />    -->
             <!--–>-->
            <!--<property name="replaceString" value="Query" />-->
        <!--</plugin>-->
        <!-- 此处是将UserMapper.xml改名为UserDao.xml 当然 想改成什么都行~ -->
        <!--<plugin type="org.mybatis.generator.plugins.rename.RenameSqlMapperPlugin">-->
            <!--<property name="searchString" value="Mapper" />-->
            <!--<property name="replaceString" value="Dao" />-->
        <!--</plugin>-->

        <!--<!– 此处是将UserMapper改名为UserDao 接口 当然 想改成什么都行~  –>-->
        <!--<plugin type="org.mybatis.generator.plugins.rename.RenameJavaMapperPlugin">-->
            <!--<property name="searchString" value="Mapper$" />-->
            <!--<property name="replaceString" value="Dao" />-->
        <!--</plugin>-->

        <!-- 是否去除自动生成的注释 true:是 : false:否 -->
        <commentGenerator>
            <property name="suppressAllComments" value="false"/>
            <!--生成的注释包含时间戳-->
            <property name="suppressDate" value="true"/>
        </commentGenerator>
        <!--数据库连接的信息:驱动类、连接地址、用户名、密码 -->
        <jdbcConnection driverClass="com.mysql.jdbc.Driver"
                        connectionURL="jdbc:mysql://45.78.46.203:3306/allen?useUnicode=true&characterEncoding=utf-8&useSSL=false&useInformationSchema=true" userId="root"
                        password="root">
            <property name="useInformationSchema" value="true"/>
        </jdbcConnection>
        <!-- 默认false,把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer,为 true时把JDBC DECIMAL 和
            NUMERIC 类型解析为java.math.BigDecimal -->
        <javaTypeResolver>
            <property name="forceBigDecimals" value="true"/>
        </javaTypeResolver>
        <!-- targetProject:生成PO类的位置 -->
        <javaModelGenerator targetPackage="com.allen.common.entity" targetProject="src/main/java">
            <!-- enableSubPackages:是否让schema作为包的后缀 -->
            <property name="enableSubPackages" value="true"/>
            <!-- 从数据库返回的值被清理前后的空格 -->
            <property name="trimStrings" value="true"/>
        </javaModelGenerator>
        <!-- targetProject:mapper映射文件生成的位置 -->
        <!--<sqlMapGenerator targetPackage="com.allen.common.mapper" targetProject="src/main/java">-->
            <!--<!– enableSubPackages:是否让schema作为包的后缀 –>-->
            <!--<property name="enableSubPackages" value="true"/>-->
        <!--</sqlMapGenerator>-->
        <!--ANNOTATEDMAPPER: 生成java类文件,基于注解的Mapper接口,不会有对应的XML映射文件
            MIXEDMAPPER:XML和注解的混合形式
            XMLMAPPER:所有的方法都在XML中,接口调用依赖XML文件 -->
        <javaClientGenerator type="ANNOTATEDMAPPER" targetPackage="com.allen.common.mapper"
                             targetProject="src/main/java">
            <property name="enableSubPackages" value="true"/>
        </javaClientGenerator>

        <!--<table tableName="user" domainObjectName="User" enableCountByExample="false"-->
               <!--enableSelectByExample="false" enableUpdateByExample="false" enableDeleteByExample="false"/>-->
        <table schema="allen" tableName="USER" domainObjectName="TUser"
               enableCountByExample="false" enableUpdateByExample="false"
               enableDeleteByExample="false" enableSelectByExample="false"
               selectByExampleQueryId="false">
        </table>
    </context>
</generatorConfiguration>

2. 配置pom文件

2.1 添加依赖 

               <dependency>
			<groupId>org.mybatis.generator</groupId>
			<artifactId>mybatis-generator-core</artifactId>
			<version>1.3.6</version>
		</dependency>

2.2 添加插件

			<plugin>
				<groupId>org.mybatis.generator</groupId>
				<artifactId>mybatis-generator-maven-plugin</artifactId>
				<version>1.3.6</version>
				<configuration>
					<!--配置文件的位置-->
					<configurationFile>src/main/resources/generatorConfig.xml</configurationFile>
					<verbose>true</verbose>
					<overwrite>true</overwrite>
				</configuration>
				<executions>
					<execution>
						<id>Generate MyBatis Artifacts</id>
						<goals>
							<goal>generate</goal>
						</goals>
					</execution>
				</executions>
				<dependencies>
					<dependency>
						<groupId>org.mybatis.generator</groupId>
						<artifactId>mybatis-generator-core</artifactId>
						<version>1.3.6</version>
					</dependency>
					<dependency>
						<groupId>mysql</groupId>
						<artifactId>mysql-connector-java</artifactId>
						<version>5.1.46</version>
					</dependency>
					<dependency>
						<groupId>org.mybatis</groupId>
						<artifactId>mybatis</artifactId>
						<version>3.4.6</version>
					</dependency>
				</dependencies>
			</plugin>

3. 启动


出现下面情形说明成功: 

BUILD SUCCESS , Process finished with exit code 0 (如果code值为1则失败)


4. 看一下生成后的文件

package com.allen.common.entity;

import java.io.Serializable;

public class TUser implements Serializable {
    private String userId;

    private String userPassword;

    private String userName;

    private String userSex;

    private String userPhone;

    private String userEmail;

    private String userAddress;

    private String userRemark;

    private static final long serialVersionUID = 1L;

    public String getUserId() {
        return userId;
    }

    public void setUserId(String userId) {
        this.userId = userId == null ? null : userId.trim();
    }

    public String getUserPassword() {
        return userPassword;
    }

    public void setUserPassword(String userPassword) {
        this.userPassword = userPassword == null ? null : userPassword.trim();
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName == null ? null : userName.trim();
    }

    public String getUserSex() {
        return userSex;
    }

    public void setUserSex(String userSex) {
        this.userSex = userSex == null ? null : userSex.trim();
    }

    public String getUserPhone() {
        return userPhone;
    }

    public void setUserPhone(String userPhone) {
        this.userPhone = userPhone == null ? null : userPhone.trim();
    }

    public String getUserEmail() {
        return userEmail;
    }

    public void setUserEmail(String userEmail) {
        this.userEmail = userEmail == null ? null : userEmail.trim();
    }

    public String getUserAddress() {
        return userAddress;
    }

    public void setUserAddress(String userAddress) {
        this.userAddress = userAddress == null ? null : userAddress.trim();
    }

    public String getUserRemark() {
        return userRemark;
    }

    public void setUserRemark(String userRemark) {
        this.userRemark = userRemark == null ? null : userRemark.trim();
    }

    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append(getClass().getSimpleName());
        sb.append(" [");
        sb.append("Hash = ").append(hashCode());
        sb.append(", userId=").append(userId);
        sb.append(", userPassword=").append(userPassword);
        sb.append(", userName=").append(userName);
        sb.append(", userSex=").append(userSex);
        sb.append(", userPhone=").append(userPhone);
        sb.append(", userEmail=").append(userEmail);
        sb.append(", userAddress=").append(userAddress);
        sb.append(", userRemark=").append(userRemark);
        sb.append(", serialVersionUID=").append(serialVersionUID);
        sb.append("]");
        return sb.toString();
    }
}

package com.allen.common.mapper;

import com.allen.common.entity.TUser;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.InsertProvider;
import org.apache.ibatis.annotations.Result;
import org.apache.ibatis.annotations.Results;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;
import org.apache.ibatis.annotations.UpdateProvider;
import org.apache.ibatis.type.JdbcType;

public interface TUserMapper {
    @Delete({
        "delete from USER",
        "where USER_ID = #{userId,jdbcType=VARCHAR}"
    })
    int deleteByPrimaryKey(String userId);

    @Insert({
        "insert into USER (USER_ID, USER_PASSWORD, ",
        "USER_NAME, USER_SEX, ",
        "USER_PHONE, USER_EMAIL, ",
        "USER_ADDRESS, USER_REMARK)",
        "values (#{userId,jdbcType=VARCHAR}, #{userPassword,jdbcType=VARCHAR}, ",
        "#{userName,jdbcType=VARCHAR}, #{userSex,jdbcType=VARCHAR}, ",
        "#{userPhone,jdbcType=VARCHAR}, #{userEmail,jdbcType=VARCHAR}, ",
        "#{userAddress,jdbcType=VARCHAR}, #{userRemark,jdbcType=VARCHAR})"
    })
    int insert(TUser record);

    @InsertProvider(type=TUserSqlProvider.class, method="insertSelective")
    int insertSelective(TUser record);

    @Select({
        "select",
        "USER_ID, USER_PASSWORD, USER_NAME, USER_SEX, USER_PHONE, USER_EMAIL, USER_ADDRESS, ",
        "USER_REMARK",
        "from USER",
        "where USER_ID = #{userId,jdbcType=VARCHAR}"
    })
    @Results({
        @Result(column="USER_ID", property="userId", jdbcType=JdbcType.VARCHAR, id=true),
        @Result(column="USER_PASSWORD", property="userPassword", jdbcType=JdbcType.VARCHAR),
        @Result(column="USER_NAME", property="userName", jdbcType=JdbcType.VARCHAR),
        @Result(column="USER_SEX", property="userSex", jdbcType=JdbcType.VARCHAR),
        @Result(column="USER_PHONE", property="userPhone", jdbcType=JdbcType.VARCHAR),
        @Result(column="USER_EMAIL", property="userEmail", jdbcType=JdbcType.VARCHAR),
        @Result(column="USER_ADDRESS", property="userAddress", jdbcType=JdbcType.VARCHAR),
        @Result(column="USER_REMARK", property="userRemark", jdbcType=JdbcType.VARCHAR)
    })
    TUser selectByPrimaryKey(String userId);

    @UpdateProvider(type=TUserSqlProvider.class, method="updateByPrimaryKeySelective")
    int updateByPrimaryKeySelective(TUser record);

    @Update({
        "update USER",
        "set USER_PASSWORD = #{userPassword,jdbcType=VARCHAR},",
          "USER_NAME = #{userName,jdbcType=VARCHAR},",
          "USER_SEX = #{userSex,jdbcType=VARCHAR},",
          "USER_PHONE = #{userPhone,jdbcType=VARCHAR},",
          "USER_EMAIL = #{userEmail,jdbcType=VARCHAR},",
          "USER_ADDRESS = #{userAddress,jdbcType=VARCHAR},",
          "USER_REMARK = #{userRemark,jdbcType=VARCHAR}",
        "where USER_ID = #{userId,jdbcType=VARCHAR}"
    })
    int updateByPrimaryKey(TUser record);
}
package com.allen.common.mapper;

import com.allen.common.entity.TUser;
import org.apache.ibatis.jdbc.SQL;

public class TUserSqlProvider {

    public String insertSelective(TUser record) {
        SQL sql = new SQL();
        sql.INSERT_INTO("USER");
        
        if (record.getUserId() != null) {
            sql.VALUES("USER_ID", "#{userId,jdbcType=VARCHAR}");
        }
        
        if (record.getUserPassword() != null) {
            sql.VALUES("USER_PASSWORD", "#{userPassword,jdbcType=VARCHAR}");
        }
        
        if (record.getUserName() != null) {
            sql.VALUES("USER_NAME", "#{userName,jdbcType=VARCHAR}");
        }
        
        if (record.getUserSex() != null) {
            sql.VALUES("USER_SEX", "#{userSex,jdbcType=VARCHAR}");
        }
        
        if (record.getUserPhone() != null) {
            sql.VALUES("USER_PHONE", "#{userPhone,jdbcType=VARCHAR}");
        }
        
        if (record.getUserEmail() != null) {
            sql.VALUES("USER_EMAIL", "#{userEmail,jdbcType=VARCHAR}");
        }
        
        if (record.getUserAddress() != null) {
            sql.VALUES("USER_ADDRESS", "#{userAddress,jdbcType=VARCHAR}");
        }
        
        if (record.getUserRemark() != null) {
            sql.VALUES("USER_REMARK", "#{userRemark,jdbcType=VARCHAR}");
        }
        
        return sql.toString();
    }

    public String updateByPrimaryKeySelective(TUser record) {
        SQL sql = new SQL();
        sql.UPDATE("USER");
        
        if (record.getUserPassword() != null) {
            sql.SET("USER_PASSWORD = #{userPassword,jdbcType=VARCHAR}");
        }
        
        if (record.getUserName() != null) {
            sql.SET("USER_NAME = #{userName,jdbcType=VARCHAR}");
        }
        
        if (record.getUserSex() != null) {
            sql.SET("USER_SEX = #{userSex,jdbcType=VARCHAR}");
        }
        
        if (record.getUserPhone() != null) {
            sql.SET("USER_PHONE = #{userPhone,jdbcType=VARCHAR}");
        }
        
        if (record.getUserEmail() != null) {
            sql.SET("USER_EMAIL = #{userEmail,jdbcType=VARCHAR}");
        }
        
        if (record.getUserAddress() != null) {
            sql.SET("USER_ADDRESS = #{userAddress,jdbcType=VARCHAR}");
        }
        
        if (record.getUserRemark() != null) {
            sql.SET("USER_REMARK = #{userRemark,jdbcType=VARCHAR}");
        }
        
        sql.WHERE("USER_ID = #{userId,jdbcType=VARCHAR}");
        
        return sql.toString();
    }
}

5. 如果想生成带注释的实体类, 需要修改mybatis-generator-core-1.3.6.jar

5.1 在项目中创建实体类DefaultCommentGenerator 创建路径一定不能错:org/mybatis/generator/internal/DefaultCommentGenerator.java

package org.mybatis.generator.internal;

import org.mybatis.generator.api.CommentGenerator;
import org.mybatis.generator.api.IntrospectedColumn;
import org.mybatis.generator.api.IntrospectedTable;
import org.mybatis.generator.api.dom.java.*;
import org.mybatis.generator.api.dom.xml.XmlElement;
import org.mybatis.generator.config.MergeConstants;
import org.mybatis.generator.config.PropertyRegistry;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Properties;
import java.util.Set;

import static org.mybatis.generator.internal.util.StringUtility.isTrue;

/**
 * mybatis generator 注释
 *
 * @author Klaus Allen
 * @date 2018/6/15
 */
public class DefaultCommentGenerator implements CommentGenerator {

    private Properties properties;
    private Properties systemPro;
    private boolean suppressDate;
    private boolean suppressAllComments;
    private String currentDateStr;

    public DefaultCommentGenerator() {
        super();
        properties = new Properties();
        systemPro = System.getProperties();
        suppressDate = false;
        suppressAllComments = false;
        currentDateStr = (new SimpleDateFormat("yyyy-MM-dd")).format(new Date());
    }

    @Override
    public void addJavaFileComment(CompilationUnit compilationUnit) {
        // add no file level comments by default
        return;
    }

    /**
     * Adds a suitable comment to warn users that the element was generated, and
     * when it was generated.
     */
    @Override
    public void addComment(XmlElement xmlElement) {
        return;
    }

    @Override
    public void addRootComment(XmlElement rootElement) {
        // add no document level comments by default
        return;
    }

    @Override
    public void addGeneralMethodAnnotation(Method method, IntrospectedTable introspectedTable,
                                           Set<FullyQualifiedJavaType> set) {

    }

    @Override
    public void addGeneralMethodAnnotation(Method method, IntrospectedTable introspectedTable, IntrospectedColumn introspectedColumn, Set<FullyQualifiedJavaType> set) {

    }

    @Override
    public void addFieldAnnotation(Field field, IntrospectedTable introspectedTable, Set<FullyQualifiedJavaType> set) {

    }

    @Override
    public void addFieldAnnotation(Field field, IntrospectedTable introspectedTable, IntrospectedColumn introspectedColumn, Set<FullyQualifiedJavaType> set) {

    }

    @Override
    public void addClassAnnotation(InnerClass innerClass, IntrospectedTable introspectedTable, Set<FullyQualifiedJavaType> set) {

    }

    @Override
    public void addConfigurationProperties(Properties properties) {
        this.properties.putAll(properties);

        suppressDate = isTrue(properties.getProperty(PropertyRegistry.COMMENT_GENERATOR_SUPPRESS_DATE));

        suppressAllComments = isTrue(properties.getProperty(PropertyRegistry.COMMENT_GENERATOR_SUPPRESS_ALL_COMMENTS));
    }

    /**
     * This method adds the custom javadoc tag for. You may do nothing if you do
     * not wish to include the Javadoc tag - however, if you do not include the
     * Javadoc tag then the Java merge capability of the eclipse plugin will
     * break.
     *
     * @param javaElement the java element
     */
    protected void addJavadocTag(JavaElement javaElement, boolean markAsDoNotDelete) {
        javaElement.addJavaDocLine(" *");
        StringBuilder sb = new StringBuilder();
        sb.append(" * ");
        sb.append(MergeConstants.NEW_ELEMENT_TAG);
        if (markAsDoNotDelete) {
            sb.append(" do_not_delete_during_merge");
        }
        String s = getDateString();
        if (s != null) {
            sb.append(' ');
            sb.append(s);
        }
        javaElement.addJavaDocLine(sb.toString());
    }

    /**
     * This method returns a formated date string to include in the Javadoc tag
     * and XML comments. You may return null if you do not want the date in
     * these documentation elements.
     *
     * @return a string representing the current timestamp, or null
     */
    protected String getDateString() {
        String result = null;
        if (!suppressDate) {
            result = currentDateStr;
        }
        return result;
    }

    @Override
    public void addClassComment(InnerClass innerClass, IntrospectedTable introspectedTable) {
        if (suppressAllComments) {
            return;
        }
        StringBuilder sb = new StringBuilder();
        innerClass.addJavaDocLine("/**");
        sb.append(" * ");
        sb.append(introspectedTable.getFullyQualifiedTable());
        sb.append(" ");
        sb.append(getDateString());
        innerClass.addJavaDocLine(sb.toString());
        innerClass.addJavaDocLine(" */");
    }

    @Override
    public void addEnumComment(InnerEnum innerEnum, IntrospectedTable introspectedTable) {
        if (suppressAllComments) {
            return;
        }

        StringBuilder sb = new StringBuilder();

        innerEnum.addJavaDocLine("/**");
        //      addJavadocTag(innerEnum, false);
        sb.append(" * ");
        sb.append(introspectedTable.getFullyQualifiedTable());
        innerEnum.addJavaDocLine(sb.toString());
        innerEnum.addJavaDocLine(" */");
    }

    @Override
    public void addFieldComment(Field field, IntrospectedTable introspectedTable,
                                IntrospectedColumn introspectedColumn) {
        if (suppressAllComments) {
            return;
        }

        StringBuilder sb = new StringBuilder();

        field.addJavaDocLine("/**");
        sb.append(" * ");
        sb.append(introspectedColumn.getRemarks());
        field.addJavaDocLine(sb.toString());

        //      addJavadocTag(field, false);

        field.addJavaDocLine(" */");
    }

    @Override
    public void addFieldComment(Field field, IntrospectedTable introspectedTable) {
        if (suppressAllComments) {
            return;
        }

        StringBuilder sb = new StringBuilder();

        field.addJavaDocLine("/**");
        sb.append(" * ");
        sb.append(introspectedTable.getFullyQualifiedTable());
        field.addJavaDocLine(sb.toString());
        field.addJavaDocLine(" */");
    }

    @Override
    public void addModelClassComment(TopLevelClass topLevelClass, IntrospectedTable introspectedTable) {

    }

    @Override
    public void addGeneralMethodComment(Method method, IntrospectedTable introspectedTable) {
        if (suppressAllComments) {
            return;
        }
        //      method.addJavaDocLine("/**");
        //      addJavadocTag(method, false);
        //      method.addJavaDocLine(" */");
    }

    @Override
    public void addGetterComment(Method method, IntrospectedTable introspectedTable,
                                 IntrospectedColumn introspectedColumn) {
        if (suppressAllComments) {
            return;
        }

        method.addJavaDocLine("/**");

        StringBuilder sb = new StringBuilder();
        sb.append(" * ");
        sb.append(introspectedColumn.getRemarks());
        method.addJavaDocLine(sb.toString());

        sb.setLength(0);
        sb.append(" * @return ");
        sb.append(introspectedColumn.getActualColumnName());
        sb.append(" ");
        sb.append(introspectedColumn.getRemarks());
        method.addJavaDocLine(sb.toString());

        //      addJavadocTag(method, false);

        method.addJavaDocLine(" */");
    }

    @Override
    public void addSetterComment(Method method, IntrospectedTable introspectedTable,
                                 IntrospectedColumn introspectedColumn) {
        if (suppressAllComments) {
            return;
        }


        method.addJavaDocLine("/**");
        StringBuilder sb = new StringBuilder();
        sb.append(" * ");
        sb.append(introspectedColumn.getRemarks());
        method.addJavaDocLine(sb.toString());

        Parameter parm = method.getParameters().get(0);
        sb.setLength(0);
        sb.append(" * @param ");
        sb.append(parm.getName());
        sb.append(" ");
        sb.append(introspectedColumn.getRemarks());
        method.addJavaDocLine(sb.toString());

        //      addJavadocTag(method, false);

        method.addJavaDocLine(" */");
    }

    @Override
    public void addClassComment(InnerClass innerClass, IntrospectedTable introspectedTable, boolean markAsDoNotDelete) {
        if (suppressAllComments) {
            return;
        }

        StringBuilder sb = new StringBuilder();

        innerClass.addJavaDocLine("/**");
        sb.append(" * ");
        sb.append(introspectedTable.getFullyQualifiedTable());
        innerClass.addJavaDocLine(sb.toString());

        sb.setLength(0);
        sb.append(" * @author ");
        sb.append(systemPro.getProperty("user.name"));
        sb.append(" ");
        sb.append(currentDateStr);

        //      addJavadocTag(innerClass, markAsDoNotDelete);

        innerClass.addJavaDocLine(" */");
    }
}

5.2 用压缩文件打开本地仓库中的 mybatis-generator-core-1.3.6.jar , 把编译好的class文件DefaultCommentGenerator.class替换掉原来jar包中的文件

5.3 配置文件中

<property name="suppressAllComments" value="true"/> true 改成 false

再次生成文件看一下效果:

package com.allen.common.entity;

import java.io.Serializable;

public class TUser implements Serializable {
    /**
     * 用户ID
     */
    private String userId;

    /**
     * 用户密码
     */
    private String userPassword;

    /**
     * 用户名
     */
    private String userName;

    /**
     * 用户性别:01 男 02 女
     */
    private String userSex;

    /**
     * 用户电话
     */
    private String userPhone;

    /**
     * 用户邮箱
     */
    private String userEmail;

    /**
     * 用户地址
     */
    private String userAddress;

    /**
     * 备注
     */
    private String userRemark;

    /**
     * USER
     */
    private static final long serialVersionUID = 1L;

    /**
     * 用户ID
     * @return USER_ID 用户ID
     */
    public String getUserId() {
        return userId;
    }

    /**
     * 用户ID
     * @param userId 用户ID
     */
    public void setUserId(String userId) {
        this.userId = userId == null ? null : userId.trim();
    }

    /**
     * 用户密码
     * @return USER_PASSWORD 用户密码
     */
    public String getUserPassword() {
        return userPassword;
    }

    /**
     * 用户密码
     * @param userPassword 用户密码
     */
    public void setUserPassword(String userPassword) {
        this.userPassword = userPassword == null ? null : userPassword.trim();
    }

    /**
     * 用户名
     * @return USER_NAME 用户名
     */
    public String getUserName() {
        return userName;
    }

    /**
     * 用户名
     * @param userName 用户名
     */
    public void setUserName(String userName) {
        this.userName = userName == null ? null : userName.trim();
    }

    /**
     * 用户性别:01 男 02 女
     * @return USER_SEX 用户性别:01 男 02 女
     */
    public String getUserSex() {
        return userSex;
    }

    /**
     * 用户性别:01 男 02 女
     * @param userSex 用户性别:01 男 02 女
     */
    public void setUserSex(String userSex) {
        this.userSex = userSex == null ? null : userSex.trim();
    }

    /**
     * 用户电话
     * @return USER_PHONE 用户电话
     */
    public String getUserPhone() {
        return userPhone;
    }

    /**
     * 用户电话
     * @param userPhone 用户电话
     */
    public void setUserPhone(String userPhone) {
        this.userPhone = userPhone == null ? null : userPhone.trim();
    }

    /**
     * 用户邮箱
     * @return USER_EMAIL 用户邮箱
     */
    public String getUserEmail() {
        return userEmail;
    }

    /**
     * 用户邮箱
     * @param userEmail 用户邮箱
     */
    public void setUserEmail(String userEmail) {
        this.userEmail = userEmail == null ? null : userEmail.trim();
    }

    /**
     * 用户地址
     * @return USER_ADDRESS 用户地址
     */
    public String getUserAddress() {
        return userAddress;
    }

    /**
     * 用户地址
     * @param userAddress 用户地址
     */
    public void setUserAddress(String userAddress) {
        this.userAddress = userAddress == null ? null : userAddress.trim();
    }

    /**
     * 备注
     * @return USER_REMARK 备注
     */
    public String getUserRemark() {
        return userRemark;
    }

    /**
     * 备注
     * @param userRemark 备注
     */
    public void setUserRemark(String userRemark) {
        this.userRemark = userRemark == null ? null : userRemark.trim();
    }

    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append(getClass().getSimpleName());
        sb.append(" [");
        sb.append("Hash = ").append(hashCode());
        sb.append(", userId=").append(userId);
        sb.append(", userPassword=").append(userPassword);
        sb.append(", userName=").append(userName);
        sb.append(", userSex=").append(userSex);
        sb.append(", userPhone=").append(userPhone);
        sb.append(", userEmail=").append(userEmail);
        sb.append(", userAddress=").append(userAddress);
        sb.append(", userRemark=").append(userRemark);
        sb.append(", serialVersionUID=").append(serialVersionUID);
        sb.append("]");
        return sb.toString();
    }
}

也可以直接下载我改好的jar包

https://download.csdn.net/download/qigc_0529/10480965

如果可以用, 就点个赞喽!




猜你喜欢

转载自blog.csdn.net/qigc_0529/article/details/80704330