您的位置:首页 > 其它

详细讲解Maven插件MyBatis-Generator以及如何修改源码

2016-09-28 00:00 549 查看
摘要: 经常使用mybatis操作dao层但每次新建表都需自己手动写entity、mapper很繁琐;下面将讲述如何使用mybatis-generator插件以及修改mybatis-generator部分注释源码

1、常用使用方式:

mybatis-generator有三种用法:命令行、eclipse插件、maven插件。个人觉得maven插件最方便,可以在eclipse/intellij idea等ide上可以通用。

命令行:

java -jar mybatis-generator-core-x.x.x.jar -configfile generatorConfig.xml

java -cp mybatis-generator-core-x.x.x.jar org.mybatis.generator.api.ShellRunner -configfile generatorConfig.xml

eclipse插件:

eclipse插件方式就不介绍了,网上搜一大堆;

参考:http://mbg.cndocs.tk/index.html

2、重点介绍maven插件方式:

注:这种方式最为方便,不需要IDE安装mybatis-generator插件,配置好就可以直接RUNING;

2.1修改pom.xml:

在pom.xml新增下面一段:

<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.2</version>
<configuration>
<configurationFile>generatorConfig.xml</configurationFile>
<verbose>true</verbose>
<overwrite>true</overwrite>
</configuration>
<dependencies>
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<version>1.3.2</version>
</dependency>
&nb
7fe0
sp; </dependencies>
</plugin>

2.2:在maven工程下新建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 >

<classPathEntry location="D:\soft\apache-maven-3.0.3\repo\mysql\mysql-connector-java\5.1.35\mysql-connector-java-5.1.35.jar"/>

<context id="context1" >
<commentGenerator  >
<property name="javaFileEncoding" value="UTF-8"/>
<property name="suppressAllComments" value="false" />
<property name="suppressDate" value="true"/>
</commentGenerator>
<jdbcConnection driverClass="com.mysql.jdbc.Driver"
connectionURL="jdbc:mysql://192.168.1.192:3306/pluto_is?useUnicode=true&characterEncoding=UTF-8" userId="root" password="123456" />

<!--生成实体类 指定包名 以及生成的地址 (可以自定义地址,但是路径不存在不会自动创建  使用Maven生成在target目录下,会自动创建) -->
<javaModelGenerator targetPackage="com.woter.server.core.test.entity" targetProject="D:/work/workspace/pluto-is-server/src/main/java" >
<property name="enableSubPackages" value="true"/> <!-- 如果true,MBG会根据catalog和schema来生成子包。如果false就会直接用targetPackage属性。默认为false -->
<property name="trimStrings" value="true" /> <!-- 当数据库字段使用CHAR时,建议在<javaModelGenerator>中设 -->
</javaModelGenerator>

<!--生成SQLMAP文件 -->
<sqlMapGenerator targetPackage="com.woter.server.core.dao"  targetProject="D:/work/workspace/pluto-is-server/src/main/java" />

<!--生成Dao文件 可以配置 type="XMLMAPPER"生成xml的dao实现 -->
<javaClientGenerator targetPackage="com.woter.server.core.dao" targetProject="D:/work/workspace/pluto-is-server/src/main/java" type="XMLMAPPER" />

<table tableName="t_policy_company_file" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false"
enableSelectByExample="false"   selectByExampleQueryId="false" />
</context>
</generatorConfiguration>


这个文件有两个地方需要注意下:

I):targetProject 如果是eclipse插件则只需要配置工程名 pluto-is-server,但用maven插件则不行必须用绝对路径,

否则会提醒 The specified target project directory pluto-is-server does not exist

II):如果生成的文件乱码或者GBK时,则只需要加 <property name="javaFileEncoding" value="UTF-8"/>

2.3:运行插件:

选择maven工程->右键-->Run AS-->Maven Build.. -->Goals: 输入框输入 mybatis-generator:generate -->RUN

(或者直接用maven命令去执行 mybatis-generator:generate 这句也是可以的)

到这就可以了,再去刷新下工程文件就生成了。

3、修改mybatis-generator源码:

3.1为什么要修改源码:

应该当用mybatis-generator生产带注释的文件时,会发现全都是一推的英文而不是我们想要的数据库表或者字段的注释,导致我们后面还需要在实体类里一个一个的加注释非常的麻烦;

3.2如何修改:

首先新建一个maven工程,添加下面的依赖,使用maven的Download Sources,获得mybatis-generator-core的源码(在你本地的maven私服库 mybatis-generator-core-1.3.2-sources.jar)。

<dependency>

<groupId>org.mybatis.generator</groupId>

<artifactId>mybatis-generator-core</artifactId>

<version>1.3.2</version>

</dependency>

将mybatis-generator-core-1.3.2-sources.jar解压然后把org文件拷贝工程的src目录,然后就可以开始修改了。 但这时会发现有类报错,表示有对别的jar包依赖,则修改修改下pom.xml文件

添加下面两个(记得删除 mybatis-generator-core):

<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
<dependency>
<groupId>org.apache.ant</groupId>
<artifactId>ant</artifactId>
<version>1.9.4</version>
</dependency>

到这,工程就不报错了。

3.3修改哪:

主要修改 org.mybatis.generator.internal.DefaultCommentGenerator类中的:

public void addFieldComment(Field field,IntrospectedTable introspectedTable,IntrospectedColumn introspectedColumn) {

if (suppressChineseComments||introspectedColumn.getRemarks()==null) {
return;
}
field.addJavaDocLine("/** "+introspectedColumn.getRemarks()+" */"); //$NON-NLS-1$
}

修改完这个方法后,字段的注释是OK了,但发现get set 以及mapper中的方法上的英文注释也会生成,但我们想去掉。这时只需要修改 DefaultCommentGenerator的其他方法,把所有加注释的代码都删掉就OK了。

到这,代码修改完成了。接下就是把这个类型编译好的DefaultCommentGenerator.class文件替换在你maven私服库里的mybatis-generator-core-1.3.2.jar里的DefaultCommentGenerator.class就OK了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  MyBatis Mybatis Plugin
相关文章推荐