修改mybatis-generate源码实现实体类加上字段注释

我怕爱的太早我们不能终老 提交于 2019-11-30 18:10:37

使用mybatis代码自动生成插件可以节约开发者很多时间,但是由它生成的实体类并没有把表字段注释给加上,这样后期要想知道某个属性是做什么的,不得不去数据库查看,相对来说幸福感就没有那么强了,基于此,只能自己试着去修改源码,实现自己想要的文件样子,功夫不负有心人,在简单了解下源码后终于把实体类加上注释了,本文介绍如何去修改mybatis代码生成源码,实现实体类加上字段注释。

        首先需要下载mybatis-generator-core-1.3.2的源码,然后创建一个maven项目,把源码放到项目里面去,方便修改。

        接着修改api.dom.java里面的Field类,添加一个注释的属性以及set,get方法,如图

接着修改该类的getFormattedContent方法,该方法原来是返回修饰符+类型+属性名;我们只需要在后面判断一下remarks是否为空,并把它拼在原来的字符串后面即可,如图

 

接着我们就需要为我们新增的remarks赋值了,通过查看源码,可以发现这个动作发生在package org.mybatis.generator.codegen包下面的AbstractJavaGenerator的getJavaBeansField方法,刚好发现作者写插件的时候是有读取字段注释的,为IntrospectedColumn的remarks属性,所以到这里事情就变得简单多了,只要把字段名类型赋值给Field的同时把remarks也赋值一下就搞定了,如图

改完这三个地方,把改动的class替换原有jar包里面的文件(当然你也可以重新打包),执行一下生成命令,注释出现在实体类上了,但是竟然是乱码,无奈只能继续修改,找到它写文件的地方MyBatisGenertor(通过生成代码时候打印的日志信息进行查找,就能快速知道它大概在哪个位置),默认改为UTF-8编码写文件,位置在package org.mybatis.generator.api 包下,更改代码如下图所示:

修改完成后,再把这个class替换到原来的jar包,再次执行生成命令,这一次中文注释完美的出现了,这样后来人查看的时候就不用再去数据库看看这个到底是做什么用的啦。

 修改的地方不多,总算实现了自己想要的目的,敢于去尝试,总会得到想要的。

补充: 通过Eclipse 生成jar 包:

  在项目上面右单击---》如下图:

 将生成的jar 替换掉之前引用的。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!