说明: 适用于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.youkuaiyun.com/download/qigc_0529/10480965
如果可以用, 就点个赞喽!