没有合适的资源?快使用搜索试试~ 我知道了~
资源详情
资源评论
资源推荐
修改一
相信很多人都用过 mybatis-generator-core 生成 pojo 和 xml 文件,但是
这工具最后一个版本是 1.3.2 版,2012 年 7 月后就没再更新了,同时因为这玩意是老外
写的,可能与咱们国人的有些习惯不一致,所以在使用上总会感觉不怎么爽,大象也有这
个体会,所以对源码作过一些修改,现将这些总结分享出来给需要的朋友。
首先大象得说一下,我对 mybatis-generator-core 也没有太深入的了解,
仅仅是把它当成一个工具,只是感觉用的不顺手,就稍微了解了一下,顺便改了改。所以
本篇没涉及到的地方,如果你知道,还请多多分享,大象感激不尽。另外,我对源码的修
改主要是针对 MySQL 数据库,在第二篇中会讲到。
这个项目本身是放在 googlecode 上面的,但是有一道“墙”,你懂的。所以得
换个方式来获得源码。
首先新建一个 maven 工程,添加下面的依赖,使用 maven 的 Download
Sources,获得 mybatis-generator-core 的源码。
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<version>1.3.2</version>
</dependency>
将源码解压放到工程里面,然后就可以开始修改了。记得把之前的依赖去掉哦!
我主要说明改哪些源码,以及作用。
org.mybatis.generator.api.dom.OutputUtilities
mybatis-generator 里面我觉得首先最应该改的就是 OutputUtilities 这个类,
它里面有个 xmlIndent 方法是用来控制生成的 xml 文件中空格的缩进,默认是两个空格,但
四个空格对于我们来说已经深入骨髓了,所以必须改。在 sb.append(" ")里面增加两个空
格就可以了。
org.mybatis.generator.api.dom.java.InnerClass
这个类就是用来控制生成 pojo 类以及格式化,我主要是修改属性之间以及方法之间的
换行。
源文件:
第 178-180 行就是在每个属性后面增加一个换行,大象喜欢紧凑风格的代码,于
是就把红框内的代码去掉了。再看下图,注意红线的 172 行,在这里增加换行是让生成的
第一个属性与类的声明之间有一个空行。
如果你觉得 getter 和 setter 方法也不想有空行,可以把源文件的 206-208 行
这段代码去掉,大家可以根据自己的习惯来,大象在这里把它去掉。
org.mybatis.generator.codegen.mybatis3.IntrospectedTableMyBati
s3Impl
这个类的第 210 行有个 getGeneratedXmlFiles()方法,注意下图中红线的 true
这个属性,它是用来控制是否合并生成 xml 文件,这里显然默认就是合并,对于我们来说,修
改数据库表结构是经常发生的事情,不能每次重新生成之后,都手动去删除吧?所以这里要坚决
的把它改成 false
现在我们将 true 改成了 false,问题解决了,但是它究竟是在哪里起作用的呢?
请看 org.mybatis.generator.api.MyBatisGenerator 这个类的 252 行,它包
含在 generate 方法里。
第一个 if 就会判断是否合并,上图中已经显示了 isMergeable 为 true,所以
当然是合并了,但我们将它改成 false 后,一定要在执行的命令行里加上 overwrite
参数,这样才能够让 shellCallback.isOverwriteEnabled()生效,从而实现我们的
xml 文件覆盖生成。
mybatis-generator 除了默认会合并 xml 文件外,还会默认生成一个带 Example
后缀的 pojo,它有点类似 Hibernate 的 Criteria 对象。另外它还会在 xml 里面默认会生
成一堆 id="xxxByExample"的东西,这些都要用到那个 Example 类,不光如此,为了配合
起来用,还有一堆与之相关的<sql>标记,所有这些在大象看来都不需要,我们使用 MyBatis
不就是为了它的简洁与方便吗?所以我不想看到它,需要怎么改呢?可以在配置文件里面修改。
剩余14页未读,继续阅读
两斤香菜
- 粉丝: 13
- 资源: 297
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0