如果你進入本文,說明你也是想在mybatis generator 自動生成mapper xml model的時候,自動生成數據庫字段的備註爲註釋信息。那麼只要你閱讀完本文,就可以幫助你實現你想要的。文章末尾會有源碼的地址和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