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