generator的自动生成实体类的注释

generator的自动生成实体类的注释

1,相关jar包
mybatis生成 jar包

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

mysql jar包

 <groupId>mysql</groupId>
 <artifactId>mysql-connector-java</artifactId>
 <version>5.1.9</version>

2,自定义的CommentGenerator类
package cn.sc.util;

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

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

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.CompilationUnit;
import org.mybatis.generator.api.dom.java.Field;
import org.mybatis.generator.api.dom.java.InnerClass;
import org.mybatis.generator.api.dom.java.InnerEnum;
import org.mybatis.generator.api.dom.java.JavaElement;
import org.mybatis.generator.api.dom.java.Method;
import org.mybatis.generator.api.dom.java.Parameter;
import org.mybatis.generator.api.dom.xml.XmlElement;
import org.mybatis.generator.config.MergeConstants;
import org.mybatis.generator.config.PropertyRegistry;

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

public class MyCommentGenerator implements CommentGenerator {
private Properties properties;
private Properties systemPro;
private boolean suppressDate;
private boolean suppressAllComments;
private String currentDateStr;

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

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.
 */
public void addComment(XmlElement xmlElement) {
    return;
}

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

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

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().replace("\n", " "));
    innerClass.addJavaDocLine(" */");
}

public void addEnumComment(InnerEnum innerEnum, IntrospectedTable introspectedTable) {
    if (suppressAllComments) {
        return;
    }
    StringBuilder sb = new StringBuilder();
    innerEnum.addJavaDocLine("/**");
    sb.append(" * ");
    sb.append(introspectedTable.getFullyQualifiedTable());
    innerEnum.addJavaDocLine(sb.toString().replace("\n", " "));
    innerEnum.addJavaDocLine(" */");
}

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().replace("\n", " "));
    field.addJavaDocLine(" */");
}

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().replace("\n", " "));
    field.addJavaDocLine(" */");
}

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

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().replace("\n", " "));
    sb.setLength(0);
    sb.append(" * @return ");
    sb.append(introspectedColumn.getActualColumnName());
    sb.append(" ");
    sb.append(introspectedColumn.getRemarks());
    method.addJavaDocLine(sb.toString().replace("\n", " "));
    method.addJavaDocLine(" */");
}

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().replace("\n", " "));
    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().replace("\n", " "));
    method.addJavaDocLine(" */");
}

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().replace("\n", " "));
    sb.setLength(0);
    sb.append(" * @author ");
    sb.append(systemPro.getProperty("user.name"));
    sb.append(" ");
    sb.append(currentDateStr);
    innerClass.addJavaDocLine(" */");
}

}
3,执行类文件
package cn.sc.util;
import java.io.IOException;
import java.io.InputStream;
import java.net.URISyntaxException;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import org.mybatis.generator.api.MyBatisGenerator;
import org.mybatis.generator.config.Configuration;
import org.mybatis.generator.config.xml.ConfigurationParser;
import org.mybatis.generator.exception.InvalidConfigurationException;
import org.mybatis.generator.exception.XMLParserException;
import org.mybatis.generator.internal.DefaultShellCallback;
public class StartUp {
public static void main(String[] args) throws URISyntaxException {
try {
List warnings = new ArrayList();
boolean overwrite = true;
ClassLoader classloader = Thread.currentThread().getContextClassLoader();
InputStream is = classloader.getResourceAsStream(“generatorConfig.xml”);
ConfigurationParser cp = new ConfigurationParser(warnings);
Configuration config = cp.parseConfiguration(is);
DefaultShellCallback callback = new DefaultShellCallback(overwrite);
MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings);
myBatisGenerator.generate(null);
} catch (SQLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
} catch (InvalidConfigurationException e) {
e.printStackTrace();
} catch (XMLParserException e) {
e.printStackTrace();
}
}
}
4,配置相关的xml文件

<?xml version="1.0" encoding="UTF-8"?>
<table tableName="t_activity" domainObjectName="Activity"></table>
**5,生成的效果** package cn.sc.pojo.washcar;

import java.math.BigDecimal;
import java.util.Date;

public class Activity {
/**
* 活动表主键
*/
private Integer id;

/**
 * 商户id(外键)
 */
private Integer shopId;

/**
 * 活动开始时间
 */
private Date startTime;

/**
 * 活动结束时间
 */
private Date entTime;

/**
 * 活动类型(0:满减、1:下单返券、2:限时折扣)
 */
private String type;

/**
 * 满多少钱可享受减免
 */
private BigDecimal mjMinMoney;

/**
 * 	优惠金额
 */
private BigDecimal mjBenefitMoney;

/**
 * 满多少钱可获得优惠券
 */
private BigDecimal fqMinMoney;

/**
 * 代金券抵扣金额
 */
private BigDecimal voucherMoney;

/**
 * 代金券有效期天数,从发放开始计时
 */
private Integer voucherTimes;

/**
 * 折扣
 */
private BigDecimal rebate;

/**
 * 当前时间
 */
private Date createTime;

/**
 * 状态(0:显示,1:删除)
 */
private String state;

/**
 * 版本;行锁
 */
private Integer version;

/**
 * 快照表id
 */
private Integer snapshotId;

/**
 * 活动提示内容
 */
private String content;

/**
 * 活动表主键
 * @return id 活动表主键
 */
public Integer getId() {
    return id;
}

/**
 * 活动表主键
 * @param id 活动表主键
 */
public void setId(Integer id) {
    this.id = id;
}

/**
 * 商户id(外键)
 * @return shop_id 商户id(外键)
 */
public Integer getShopId() {
    return shopId;
}

/**
 * 商户id(外键)
 * @param shopId 商户id(外键)
 */
public void setShopId(Integer shopId) {
    this.shopId = shopId;
}

/**
 * 活动开始时间
 * @return start_time 活动开始时间
 */
public Date getStartTime() {
    return startTime;
}

/**
 * 活动开始时间
 * @param startTime 活动开始时间
 */
public void setStartTime(Date startTime) {
    this.startTime = startTime;
}

/**
 * 活动结束时间
 * @return ent_time 活动结束时间
 */
public Date getEntTime() {
    return entTime;
}

/**
 * 活动结束时间
 * @param entTime 活动结束时间
 */
public void setEntTime(Date entTime) {
    this.entTime = entTime;
}

/**
 * 活动类型(0:满减、1:下单返券、2:限时折扣)
 * @return type 活动类型(0:满减、1:下单返券、2:限时折扣)
 */
public String getType() {
    return type;
}

/**
 * 活动类型(0:满减、1:下单返券、2:限时折扣)
 * @param type 活动类型(0:满减、1:下单返券、2:限时折扣)
 */
public void setType(String type) {
    this.type = type;
}

/**
 * 满多少钱可享受减免
 * @return mj_min_money 满多少钱可享受减免
 */
public BigDecimal getMjMinMoney() {
    return mjMinMoney;
}

/**
 * 满多少钱可享受减免
 * @param mjMinMoney 满多少钱可享受减免
 */
public void setMjMinMoney(BigDecimal mjMinMoney) {
    this.mjMinMoney = mjMinMoney;
}

/**
 * 	优惠金额
 * @return mj_benefit_money 	优惠金额
 */
public BigDecimal getMjBenefitMoney() {
    return mjBenefitMoney;
}

/**
 * 	优惠金额
 * @param mjBenefitMoney 	优惠金额
 */
public void setMjBenefitMoney(BigDecimal mjBenefitMoney) {
    this.mjBenefitMoney = mjBenefitMoney;
}

/**
 * 满多少钱可获得优惠券
 * @return fq_min_money 满多少钱可获得优惠券
 */
public BigDecimal getFqMinMoney() {
    return fqMinMoney;
}

/**
 * 满多少钱可获得优惠券
 * @param fqMinMoney 满多少钱可获得优惠券
 */
public void setFqMinMoney(BigDecimal fqMinMoney) {
    this.fqMinMoney = fqMinMoney;
}

/**
 * 代金券抵扣金额
 * @return voucher_money 代金券抵扣金额
 */
public BigDecimal getVoucherMoney() {
    return voucherMoney;
}

/**
 * 代金券抵扣金额
 * @param voucherMoney 代金券抵扣金额
 */
public void setVoucherMoney(BigDecimal voucherMoney) {
    this.voucherMoney = voucherMoney;
}

/**
 * 代金券有效期天数,从发放开始计时
 * @return voucher_times 代金券有效期天数,从发放开始计时
 */
public Integer getVoucherTimes() {
    return voucherTimes;
}

/**
 * 代金券有效期天数,从发放开始计时
 * @param voucherTimes 代金券有效期天数,从发放开始计时
 */
public void setVoucherTimes(Integer voucherTimes) {
    this.voucherTimes = voucherTimes;
}

/**
 * 折扣
 * @return rebate 折扣
 */
public BigDecimal getRebate() {
    return rebate;
}

/**
 * 折扣
 * @param rebate 折扣
 */
public void setRebate(BigDecimal rebate) {
    this.rebate = rebate;
}

/**
 * 当前时间
 * @return create_time 当前时间
 */
public Date getCreateTime() {
    return createTime;
}

/**
 * 当前时间
 * @param createTime 当前时间
 */
public void setCreateTime(Date createTime) {
    this.createTime = createTime;
}

/**
 * 状态(0:显示,1:删除)
 * @return state 状态(0:显示,1:删除)
 */
public String getState() {
    return state;
}

/**
 * 状态(0:显示,1:删除)
 * @param state 状态(0:显示,1:删除)
 */
public void setState(String state) {
    this.state = state;
}

/**
 * 版本;行锁
 * @return version 版本;行锁
 */
public Integer getVersion() {
    return version;
}

/**
 * 版本;行锁
 * @param version 版本;行锁
 */
public void setVersion(Integer version) {
    this.version = version;
}

/**
 * 快照表id
 * @return snapshot_id 快照表id
 */
public Integer getSnapshotId() {
    return snapshotId;
}

/**
 * 快照表id
 * @param snapshotId 快照表id
 */
public void setSnapshotId(Integer snapshotId) {
    this.snapshotId = snapshotId;
}

/**
 * 活动提示内容
 * @return content 活动提示内容
 */
public String getContent() {
    return content;
}

/**
 * 活动提示内容
 * @param content 活动提示内容
 */
public void setContent(String content) {
    this.content = content;
}

}

猜你喜欢

转载自blog.csdn.net/qq_43302785/article/details/82948008