您的位置:首页 > 其它

Intellij IDEA 2016学习系列之(三)修改mybatis-generator源码生成中文注释

2016-09-04 01:32 771 查看
如果你进入本文,说明你也是想在mybatis generator 自动生成mapper xml model的时候,自动生成数据库字段的备注为注释信息。那么只要你阅读完本文,就可以帮助你实现你想要的。文章末尾会有源码的地址和jar.

下载mybatis-generator-core源码

源码的修改

修改生成model对象类的注释
在FullyQualifiedTable中添加remark字段用于保存数据库表的备注信息

修改DatabaseIntrospector的calculateIntrospectedTables方法添加一段获取数据库备注的代码

修改DG2CommentGenerator中的 addClassCommentInnerClass innerClass IntrospectedTable introspectedTable 方法

修改model对象中字段的注释
在IntrospectedColumn中添加remarks属性用于保存数据库对应表中字段的备注信息需要settergetter

修改DG2CommentGenerator中的 addFieldCommentField field IntrospectedTable introspectedTable IntrospectedColumn introspectedColumn 方法

修改model对象中settergetter的注释
getter方法

setter方法

修改生成mapper中的注释
修改mapper接口中的注释

删除mapperxml中的注释

maven工程的打包

如何在工程中引用
需要修改generatorConfigxml

需要修改pomxml

源码和jar下载

下载mybatis-generator-core源码

其中下载过程各位可以自行Google,我这里有已经测试通过的maven工程,各位可以直接下载下来,导入自己的IDE中就可以了。

maven mybatis-generator-core 源码

导入成功之后的格式:



如果是直接下载的官方的源码,要修改pom.xml中的好多东西,各位有兴趣自己玩。我这里是解决好了之后的。

pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion>

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

<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<!--1.3.2-fix 是我自己命名的,也是最后jar的名称-->
<version>1.3.2-fix</version>
<packaging>jar</packaging>

<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>

<build>
<!-- this build creates and installs an instrumented JAR file
for use by the systests projects - so we can gather
consolidated coverage information
-->
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.7</source>
<target>1.7</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<!--<plugin>-->
<!--<groupId>org.apache.maven.plugins</groupId>-->
<!--<artifactId>maven-site-plugin</artifactId>-->
<!--<executions>-->
<!--<execution>-->
<!--<phase>prepare-package</phase>-->
<!--<goals>-->
<!--<goal>site</goal>-->
<!--</goals>-->
<!--</execution>-->
<!--</executions>-->
<!--</plugin>-->
<!--<plugin>-->
<!--<groupId>org.apache.maven.plugins</groupId>-->
<!--<artifactId>maven-source-plugin</artifactId>-->
<!--<executions>-->
<!--<execution>-->
<!--<phase>prepare-package</phase>-->
<!--<goals>-->
<!--<goal>jar-no-fork</goal>-->
<!--</goals>-->
<!--</execution>-->
<!--</executions>-->
<!--</plugin>-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<executions>
<execution>
<phase>prepare-package</phase>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
<!--<plugin>-->
<!--<groupId>org.apache.maven.plugins</groupId>-->
<!--<artifactId>maven-jar-plugin</artifactId>-->
<!--<configuration>-->
<!--<archive>-->
<!--<manifest>-->
<!--<mainClass>org.mybatis.generator.api.ShellRunner</mainClass>-->
<!--</manifest>-->
<!--</archive>-->
<!--</configuration>-->
<!--</plugin>-->
<!--<plugin>-->
<!--<groupId>org.apache.maven.plugins</groupId>-->
<!--<artifactId>maven-assembly-plugin</artifactId>-->
<!--<configuration>-->
<!--<descriptors>-->
<!--<descriptor>${project.basedir}/src/main/assembly/src.xml</descriptor>-->
<!--</descriptors>-->
<!--</configuration>-->
<!--<executions>-->
<!--<execution>-->
<!--<id>bundle</id>-->
<!--<goals>-->
<!--<goal>single</goal>-->
<!--</goals>-->
<!--<phase>package</phase>-->
<!--</execution>-->
<!--</executions>-->
<!--</plugin>-->
<!--<plugin>-->
<!--<groupId>org.apache.maven.plugins</groupId>-->
<!--<artifactId>maven-release-plugin</artifactId>-->
<!--<configuration>-->
<!--<arguments>-Prelease</arguments>-->
<!--</configuration>-->
<!--</plugin>-->
</plugins>
</build>

<reporting>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>jdepend-maven-plugin</artifactId>
<version>2.0</version>
</plugin>
</plugins>
</reporting>

<dependencies>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<scope>provided</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.apache.ant</groupId>
<artifactId>ant</artifactId>
<scope>provided</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.hsqldb</groupId>
<artifactId>hsqldb</artifactId>
<scope>test</scope>
</dependency>
</dependencies>

</project>


源码的修改



我这里不修改默认的类DefaultCommentGenerator,而是新建一个自己的类 DG2CommentGenerator。按照自己的需求重写一些方法,主要有生成mapper接口的备注信息,生成model对象的注释。

package org.mybatis.generator.internal;

import org.mybatis.generator.api.IntrospectedColumn;
import org.mybatis.generator.api.IntrospectedTable;
import org.mybatis.generator.api.dom.java.Field;
import org.mybatis.generator.api.dom.java.InnerClass;
import org.mybatis.generator.api.dom.java.Method;
import org.mybatis.generator.api.dom.java.Parameter;
import org.mybatis.generator.api.dom.xml.TextElement;
import org.mybatis.generator.api.dom.xml.XmlElement;
import org.mybatis.generator.config.MergeConstants;

import java.util.List;

/**
* 自定义注解生成
*
* @author IT_donggua
* @version V1.0
* @create 2016-09-02 下午 06:28
*/
public class DG2CommentGenerator extends  DefaultCommentGenerator{

public void addGeneralMethodComment(Method method, IntrospectedTable introspectedTable) {
StringBuilder sb = new StringBuilder();
method.addJavaDocLine("/**"); //$NON-NLS-1$
//        method.addJavaDocLine(" * This method was generated by MyBatis Generator."); //$NON-NLS-1$

//        sb.append(" * This method corresponds to the database table "); //$NON-NLS-1$
sb.append(" * ");
if (method.isConstructor()) {
sb.append(" 构造查询条件");
}
String method_name = method.getName();
if ("setOrderByClause".equals(method_name)) {
sb.append(" 设置排序字段");
} else if ("setDistinct".equals(method_name)) {
sb.append(" 设置过滤重复数据");
} else if ("getOredCriteria".equals(method_name)) {
sb.append(" 获取当前的查询条件实例");
} else if ("isDistinct".equals(method_name)) {
sb.append(" 是否过滤重复数据");
} else if ("getOrderByClause".equals(method_name)) {
sb.append(" 获取排序字段");
} else if ("createCriteria".equals(method_name)) {
sb.append(" 创建一个查询条件");
} else if ("createCriteriaInternal".equals(method_name)) {
sb.append(" 内部构建查询条件对象");
} else if ("clear".equals(method_name)) {
sb.append(" 清除查询条件");
} else if ("countByExample".equals(method_name)) {
sb.append(" 根据指定的条件获取数据库记录数");
} else if ("deleteByExample".equals(method_name)) {
sb.append(" 根据指定的条件删除数据库符合条件的记录");
} else if ("deleteByPrimaryKey".equals(method_name)) {
sb.append(" 根据主键删除数据库的记录");
} else if ("insert".equals(method_name)) {
sb.append(" 新写入数据库记录");
} else if ("insertSelective".equals(method_name)) {
sb.append(" 动态字段,写入数据库记录");
} else if ("selectByExample".equals(method_name)) {
sb.append(" 根据指定的条件查询符合条件的数据库记录");
} else if ("selectByPrimaryKey".equals(method_name)) {
sb.append(" 根据指定主键获取一条数据库记录");
} else if ("updateByExampleSelective".equals(method_name)) {
sb.append(" 动态根据指定的条件来更新符合条件的数据库记录");
} else if ("updateByExample".equals(method_name)) {
sb.append(" 根据指定的条件来更新符合条件的数据库记录");
} else if ("updateByPrimaryKeySelective".equals(method_name)) {
sb.append(" 动态字段,根据主键来更新符合条件的数据库记录");
} else if ("updateByPrimaryKey".equals(method_name)) {
sb.append(" 根据主键来更新符合条件的数据库记录");
}
sb.append(",");
sb.append(introspectedTable.getFullyQualifiedTable());
method.addJavaDocLine(sb.toString());

final List<Parameter> parameterList = method.getParameters();
if (!parameterList.isEmpty()) {
method.addJavaDocLine(" *");
if ("or".equals(method_name)) {
sb.append(" 增加或者的查询条件,用于构建或者查询");
}
} else {
if ("or".equals(method_name)) {
sb.append(" 创建一个新的或者查询条件");
}
}
String paramterName;
for (Parameter parameter : parameterList) {
sb.setLength(0);
sb.append(" * @param "); //$NON-NLS-1$
paramterName = parameter.getName();
sb.append(paramterName);
if ("orderByClause".equals(paramterName)) {
sb.append(" 排序字段"); //$NON-NLS-1$
} else if ("distinct".equals(paramterName)) {
sb.append(" 是否过滤重复数据");
} else if ("criteria".equals(paramterName)) {
sb.append(" 过滤条件实例");
}
method.addJavaDocLine(sb.toString());
}

//        addJavadocTag(method, false);

method.addJavaDocLine(" */"); //$NON-NLS-1$
}

@Override
public void addClassComment(InnerClass innerClass, IntrospectedTable introspectedTable) {
// 类注释,不管用
String shortName = innerClass.getType().getShortName();
innerClass.addJavaDocLine("/**");
//innerClass.addJavaDocLine(" * 类注释");
innerClass.addJavaDocLine(" * " + introspectedTable.getFullyQualifiedTable().getRemark());
innerClass.addJavaDocLine(" * " + shortName);
innerClass.addJavaDocLine(" * 数据库表:" + introspectedTable.getFullyQualifiedTable());
// addJavadocTag(innerClass, false);
innerClass.addJavaDocLine(" */");
}

@Override
public void addClassComment(InnerClass innerClass, IntrospectedTable introspectedTable, boolean markAsDoNotDelete) {
// 类注释,不管用
String shortName = innerClass.getType().getShortName();
innerClass.addJavaDocLine("/**");
innerClass.addJavaDocLine(" * 类注释");
innerClass.addJavaDocLine(" * " + shortName);
innerClass.addJavaDocLine(" * 数据库表:" + introspectedTable.getFullyQualifiedTable());
// addJavadocTag(innerClass, false);
innerClass.addJavaDocLine(" */");
}

@Override
public void addFieldComment(Field field, IntrospectedTable introspectedTable, IntrospectedColumn introspectedColumn) {
// 添加字段注释
StringBuffer sb = new StringBuffer();
field.addJavaDocLine("/**");
if (introspectedColumn.getRemarks() != null)
field.addJavaDocLine(" * " + introspectedColumn.getRemarks());
sb.append(" * 表字段 : ");
sb.append(introspectedTable.getFullyQualifiedTable());
sb.append('.');
sb.append(introspectedColumn.getActualColumnName());
field.addJavaDocLine(sb.toString());
// addJavadocTag(field, false);
field.addJavaDocLine(" */");
}

@Override
public void addGetterComment(Method method,
IntrospectedTable introspectedTable,
IntrospectedColumn introspectedColumn) {
StringBuilder sb = new StringBuilder();

method.addJavaDocLine("/**"); //$NON-NLS-1$
//        method.addJavaDocLine(" * This method was generated by MyBatis Generator."); //$NON-NLS-1$

sb.append(" * 获取 "); //$NON-NLS-1$
sb.append(introspectedColumn.getRemarks()).append(" 字段:");
sb.append(introspectedTable.getFullyQualifiedTable());
sb.append('.');
sb.append(introspectedColumn.getActualColumnName());
method.addJavaDocLine(sb.toString());

method.addJavaDocLine(" *"); //$NON-NLS-1$

sb.setLength(0);
sb.append(" * @return "); //$NON-NLS-1$
sb.append(introspectedTable.getFullyQualifiedTable());
sb.append('.');
sb.append(introspectedColumn.getActualColumnName());
sb.append(", ");
sb.append(introspectedColumn.getRemarks());
method.addJavaDocLine(sb.toString());

//        addJavadocTag(method, false);

method.addJavaDocLine(" */"); //$NON-NLS-1$
}

@Override
public void addSetterComment(Method method,
IntrospectedTable introspectedTable,
IntrospectedColumn introspectedColumn) {

StringBuilder sb = new StringBuilder();

method.addJavaDocLine("/**"); //$NON-NLS-1$
//        method.addJavaDocLine(" * This method was generated by MyBatis Generator."); //$NON-NLS-1$

sb.append(" * 设置 ");  //$NON-NLS-1$
sb.append(introspectedColumn.getRemarks()).append(" 字段:");
sb.append(introspectedTable.getFullyQualifiedTable());
sb.append('.');
sb.append(introspectedColumn.getActualColumnName());
method.addJavaDocLine(sb.toString());

method.addJavaDocLine(" *"); //$NON-NLS-1$

Parameter parm = method.getParameters().get(0);
sb.setLength(0);
sb.append(" * @param "); //$NON-NLS-1$
sb.append(parm.getName());
sb.append(" the value for "); //$NON-NLS-1$
sb.append(introspectedTable.getFullyQualifiedTable());
sb.append('.');
sb.append(introspectedColumn.getActualColumnName());
sb.append(", ");
sb.append(introspectedColumn.getRemarks());
method.addJavaDocLine(sb.toString());

//        addJavadocTag(method, false);

method.addJavaDocLine(" */"); //$NON-NLS-1$
}

@Override
public void addComment(XmlElement xmlElement) {
xmlElement.addElement(new TextElement("<!--")); //$NON-NLS-1$

StringBuilder sb = new StringBuilder();
sb.append(MergeConstants.NEW_ELEMENT_TAG);
xmlElement.addElement(new TextElement(sb.toString()));
//        xmlElement
//                .addElement(new TextElement(
//                        "  This element is automatically generated by MyBatis Generator, do not modify.")); //$NON-NLS-1$

//        String s = getDateString();
//        if (s != null) {
//            sb.setLength(0);
//            sb.append("  This element was generated on "); //$NON-NLS-1$
//            sb.append(s);
//            sb.append('.');
//            xmlElement.addElement(new TextElement(sb.toString()));
//        }

xmlElement.addElement(new TextElement("-->")); //$NON-NLS-1$
}
}


修改生成model对象类的注释

在FullyQualifiedTable中添加remark字段,用于保存数据库表的备注信息



修改DatabaseIntrospector的calculateIntrospectedTables方法,添加一段获取数据库备注的代码



//设置数据库表的备注信息
//start
Statement stmt = this.databaseMetaData.getConnection().createStatement();
ResultSet rs = stmt.executeQuery(new StringBuilder().append("SHOW TABLE STATUS LIKE '").append(atn.getTableName()).append("'").toString());
while (rs.next())
//将数据库表得备注信息设置到remark字段
table.setRemark(rs.getString("COMMENT"));

closeResultSet(rs);
stmt.close();
//end


修改DG2CommentGenerator中的 addClassComment(InnerClass innerClass, IntrospectedTable introspectedTable) 方法



具体样式可以按自己的爱好设置。

//生成model对象的注释信息
@Override
public void addClassComment(InnerClass innerClass, IntrospectedTable introspectedTable) {
// 类注释,不管用
String shortName = innerClass.getType().getShortName();
innerClass.addJavaDocLine("/**");
//innerClass.addJavaDocLine(" * 类注释");
//获取数据库表的备注信息
innerClass.addJavaDocLine(" * " + introspectedTable.getFullyQualifiedTable().getRemark());
//model对象的名称
innerClass.addJavaDocLine(" * " + shortName);
//获取数据库表
innerClass.addJavaDocLine(" * 数据库表:" + introspectedTable.getFullyQualifiedTable());
// addJavadocTag(innerClass, false);
innerClass.addJavaDocLine(" */");
}


修改model对象中字段的注释

在IntrospectedColumn中添加remarks属性,用于保存数据库对应表中字段的备注信息,需要setter/getter



修改DG2CommentGenerator中的 addFieldComment(Field field, IntrospectedTable introspectedTable, IntrospectedColumn introspectedColumn) 方法



//model对象中字段的注释
@Override
public void addFieldComment(Field field, IntrospectedTable introspectedTable, IntrospectedColumn introspectedColumn) {
// 添加字段注释
StringBuffer sb = new StringBuffer();
field.addJavaDocLine("/**");
//对应表中字段的备注(数据库中自己写的备注信息)
if (introspectedColumn.getRemarks() != null)
field.addJavaDocLine(" * " + introspectedColumn.getRemarks());
sb.append(" * 表字段 : ");
//对应表名称
sb.append(introspectedTable.getFullyQualifiedTable());
sb.append('.');
//对应表中字段的名称
sb.append(introspectedColumn.getActualColumnName());
field.addJavaDocLine(sb.toString());
// addJavadocTag(field, false);
field.addJavaDocLine(" */");
}


修改model对象中setter/getter的注释

这个就直接上代码,没有源码修改。

getter方法

@Override
public void addGetterComment(Method method,
IntrospectedTable introspectedTable,
IntrospectedColumn introspectedColumn) {
StringBuilder sb = new StringBuilder();

method.addJavaDocLine("/**"); //$NON-NLS-1$
//        method.addJavaDocLine(" * This method was generated by MyBatis Generator."); //$NON-NLS-1$

sb.append(" * 获取 "); //$NON-NLS-1$
sb.append(introspectedColumn.getRemarks()).append(" 字段:");
sb.append(introspectedTable.getFullyQualifiedTable());
sb.append('.');
sb.append(introspectedColumn.getActualColumnName());
method.addJavaDocLine(sb.toString());

method.addJavaDocLine(" *"); //$NON-NLS-1$

sb.setLength(0);
sb.append(" * @return "); //$NON-NLS-1$
sb.append(introspectedTable.getFullyQualifiedTable());
sb.append('.');
sb.append(introspectedColumn.getActualColumnName());
sb.append(", ");
sb.append(introspectedColumn.getRemarks());
method.addJavaDocLine(sb.toString());

//        addJavadocTag(method, false);

method.addJavaDocLine(" */"); //$NON-NLS-1$
}


setter方法

@Override
public void addSetterComment(Method method,
IntrospectedTable introspectedTable,
IntrospectedColumn introspectedColumn) {

StringBuilder sb = new StringBuilder();

method.addJavaDocLine("/**"); //$NON-NLS-1$
//        method.addJavaDocLine(" * This method was generated by MyBatis Generator."); //$NON-NLS-1$

sb.append(" * 设置 ");  //$NON-NLS-1$
sb.append(introspectedColumn.getRemarks()).append(" 字段:");
sb.append(introspectedTable.getFullyQualifiedTable());
sb.append('.');
sb.append(introspectedColumn.getActualColumnName());
method.addJavaDocLine(sb.toString());

method.addJavaDocLine(" *"); //$NON-NLS-1$

Parameter parm = method.getParameters().get(0);
sb.setLength(0);
sb.append(" * @param "); //$NON-NLS-1$
sb.append(parm.getName());
sb.append(" the value for "); //$NON-NLS-1$
sb.append(introspectedTable.getFullyQualifiedTable());
sb.append('.');
sb.append(introspectedColumn.getActualColumnName());
sb.append(", ");
sb.append(introspectedColumn.getRemarks());
method.addJavaDocLine(sb.toString());

//        addJavadocTag(method, false);

method.addJavaDocLine(" */"); //$NON-NLS-1$
}


修改生成mapper中的注释

修改mapper接口中的注释

public void addGeneralMethodComment(Method method, IntrospectedTable introspectedTable) {
StringBuilder sb = new StringBuilder();
method.addJavaDocLine("/**"); //$NON-NLS-1$
//        method.addJavaDocLine(" * This method was generated by MyBatis Generator."); //$NON-NLS-1$

//        sb.append(" * This method corresponds to the database table "); //$NON-NLS-1$
sb.append(" * ");
if (method.isConstructor()) {
sb.append(" 构造查询条件");
}
String method_name = method.getName();
if ("setOrderByClause".equals(method_name)) {
sb.append(" 设置排序字段");
} else if ("setDistinct".equals(method_name)) {
sb.append(" 设置过滤重复数据");
} else if ("getOredCriteria".equals(method_name)) {
sb.append(" 获取当前的查询条件实例");
} else if ("isDistinct".equals(method_name)) {
sb.append(" 是否过滤重复数据");
} else if ("getOrderByClause".equals(method_name)) {
sb.append(" 获取排序字段");
} else if ("createCriteria".equals(method_name)) {
sb.append(" 创建一个查询条件");
} else if ("createCriteriaInternal".equals(method_name)) {
sb.append(" 内部构建查询条件对象");
} else if ("clear".equals(method_name)) {
sb.append(" 清除查询条件");
} else if ("countByExample".equals(method_name)) {
sb.append(" 根据指定的条件获取数据库记录数");
} else if ("deleteByExample".equals(method_name)) {
sb.append(" 根据指定的条件删除数据库符合条件的记录");
} else if ("deleteByPrimaryKey".equals(method_name)) {
sb.append(" 根据主键删除数据库的记录");
} else if ("insert".equals(method_name)) {
sb.append(" 新写入数据库记录");
} else if ("insertSelective".equals(method_name)) {
sb.append(" 动态字段,写入数据库记录");
} else if ("selectByExample".equals(method_name)) {
sb.append(" 根据指定的条件查询符合条件的数据库记录");
} else if ("selectByPrimaryKey".equals(method_name)) {
sb.append(" 根据指定主键获取一条数据库记录");
} else if ("updateByExampleSelective".equals(method_name)) {
sb.append(" 动态根据指定的条件来更新符合条件的数据库记录");
} else if ("updateByExample".equals(method_name)) {
sb.append(" 根据指定的条件来更新符合条件的数据库记录");
} else if ("updateByPrimaryKeySelective".equals(method_name)) {
sb.append(" 动态字段,根据主键来更新符合条件的数据库记录");
} else if ("updateByPrimaryKey".equals(method_name)) {
sb.append(" 根据主键来更新符合条件的数据库记录");
}
sb.append(",");
sb.append(introspectedTable.getFullyQualifiedTable());
method.addJavaDocLine(sb.toString());

final List<Parameter> parameterList = method.getParameters();
if (!parameterList.isEmpty()) {
method.addJavaDocLine(" *");
if ("or".equals(method_name)) {
sb.append(" 增加或者的查询条件,用于构建或者查询");
}
} else {
if ("or".equals(method_name)) {
sb.append(" 创建一个新的或者查询条件");
}
}
String paramterName;
for (Parameter parameter : parameterList) {
sb.setLength(0);
sb.append(" * @param "); //$NON-NLS-1$
paramterName = parameter.getName();
sb.append(paramterName);
if ("orderByClause".equals(paramterName)) {
sb.append(" 排序字段"); //$NON-NLS-1$
} else if ("distinct".equals(paramterName)) {
sb.append(" 是否过滤重复数据");
} else if ("criteria".equals(paramterName)) {
sb.append(" 过滤条件实例");
}
method.addJavaDocLine(sb.toString());
}

//        addJavadocTag(method, false);

method.addJavaDocLine(" */"); //$NON-NLS-1$
}


删除mapper.xml中的注释

@Override
public void addComment(XmlElement xmlElement) {
xmlElement.addElement(new TextElement("<!--")); //$NON-NLS-1$

StringBuilder sb = new StringBuilder();
sb.append(MergeConstants.NEW_ELEMENT_TAG);
xmlElement.addElement(new TextElement(sb.toString()));
//        xmlElement
//                .addElement(new TextElement(
//                        "  This element is automatically generated by MyBatis Generator, do not modify.")); //$NON-NLS-1$

//        String s = getDateString();
//        if (s != null) {
//            sb.setLength(0);
//            sb.append("  This element was generated on "); //$NON-NLS-1$
//            sb.append(s);
//            sb.append('.');
//            xmlElement.addElement(new TextElement(sb.toString()));
//        }

xmlElement.addElement(new TextElement("-->")); //$NON-NLS-1$
}


maven工程的打包

clean install -Dmaven.test.skip=true




生成之后我的maven仓库中的jar如下:





如何在工程中引用

参照Intellij IDEA 2016学习系列之(二)mybatis-generator生成

需要修改generatorConfig.xml



<context id="testTables" targetRuntime="MyBatis3">
<commentGenerator>
<!-- 是否去除自动生成的注释 true:是 : false:否 -->
<property name="suppressAllComments" value="true" />
</commentGenerator>


替换为

<!--使用自定义的类DG2CommentGenerator-->
<commentGenerator type="org.mybatis.generator.internal.DG2CommentGenerator">
<property name="javaFileEncoding" value="UTF-8"/>
<!-- 是否去除自动生成的注释 true:是 : false:否 -->
<property name="suppressAllComments" value="false" />
<property name="suppressDate" value="true" />
</commentGenerator>


需要修改pom.xml

将插件中的依赖

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


修改为

<dependencies>
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<!--使用自己的版本-->
<version>1.3.2-fix</version>
</dependency>
</dependencies>


至此,大功告成。请看生成之后的代码样式。









源码和jar下载

1.3.2-fix.jar:http://download.csdn.net/detail/liudongdong0909/9621144

1.3.2-fix源码:https://github.com/liudongdong0909/mybatis-generator-core-fix.git
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐