文档章节

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

woter
 woter
发布于 2016/09/28 15:54
字数 1041
阅读 841
收藏 4

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>
                   </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&amp;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了。

© 著作权归作者所有

共有 人打赏支持
woter
粉丝 54
博文 114
码字总数 61479
作品 0
深圳
技术主管
私信 提问
数据库逆向生成代码及Maven插件开发

之前使用mybatis,可以用mybatis generator逆向生成dao层代码,详见博客《数据库逆向框架代码生成工具:MyBatis Generator的使用》。公司使用的是自己开发的服务,所以最近抽空写了一个逆向生...

蛙牛
2015/12/20
5.4K
25
SpringBoot基础教程4-1-2 使用Mybatis操作数据库

1 概述 为什么选择Mybatis,一个很重要的原因是它,将封装与开放的完美结合,高效的生成增删改查的同时,又能满足复杂的场景,下面我们详细介绍,如何快速接入实现数据库的增删改查。 2 添加...

Mkeeper
01/03
0
0
mybatis-generator相关(三)

前两篇对mybatis-generator-core源码进行了修改,在一定程度上做到了方便使用。这一篇先将写个测试程序看看生成的结果,然后用maven assembly将它打包生成一个zip文件。 新建一个类StartUp,...

dmrs
2015/11/24
19
0
jack.hu/CodeGenerator

代码自动生成工具 一、简介 1.1 概述 CodeGenerator是一个轻量的代码生成工具,可以在常规的项目开发初始阶段生成model、dao、Mapper、 mapper(mybatis)、service、controller,项目思路来...

jack.hu
2016/11/15
0
0
数据库逆向框架代码生成工具:MyBatis Generator的使用

MyBatis Generator的详细介绍http://mybatis.github.io/generator/index.html MyBatis Generator With Maven http://mybatis.github.io/generator/running/runningWithMaven.html 1前言 前段......

蛙牛
2014/02/16
0
28

没有更多内容

加载失败,请刷新页面

加载更多

开启genelog

打开genelog genelog 可以记录数据库的操作语句。 首先进入mysql, mysql -u root -p 设置日志位置 set global general_log_file = "/tmp/general.log"; 设置全局global模式 set global gen......

狼王黄师傅
17分钟前
0
0
Java 帝国对 Python 的渗透能成功吗?哈哈

引子 Java 帝国已经成立20多年,经过历代国王的励精图治,可以说是地大物博,码农众多。 可是国王依然不满足,整天想着如何继续开拓疆土, 这一天晚上他又把几个重臣招来商议了。 IO大臣说:...

边鹏_尛爺鑫
今天
7
0
分布式事务解决方案框架(LCN)

什么是XA接口 XA是一个分布式事务协议,由Tuxedo提出。XA中大致分为两部分:事务管理器和本地资源管理器。其中本地资源管理器往往由数据库实现,比如Oracle、DB2这些商业数据库都实现了XA接口...

群星纪元
今天
7
0
linux 操作系统 常用命令和软件安装

1.系统时间更新 ntpdate time.windows.com 2.传送文件 rsync -av /home/data/a.dat -e ssh root@192.168.0.100:/home 3.传送文件夹 scp -r /home/data root@192.168.0.100:/home 4.JDK安装 ......

WJtiny
今天
3
0
pg_lightool基于basebackup的单表恢复和块恢复

开源软件pg_lightool,实现了基于wal日志的块恢复。详情参见博客:https://my.oschina.net/lcc1990/blog/1931485。由于wal日志中FPW的不确定性,它不能作为一个数据库恢复的解决方案。目前对...

movead
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部