这是我的工程结构
最近在使用mybatis generator自动生成表名对应的dao接口时,发现有时候在mapper的xml下会有两份相同的sql代码,每次都需要手工删除重复的代码,很麻烦。
我使用的版本是mybatis-generator-core-1.3.7.jar ,之前用1.3.0版本的也是有这种问题,然后以为升级版本就能解决,后来发现自己太天真。
后面上网查了资料,发现很多遇到相同问题的小开发崽,但是网上的解决方案不是改源码,就是需要自定义,或者是说的不清不楚。
网上查官方文档,说这情况是由于数据库由多个用户导致,当使用某个用户连上之后,mybatis generator无法区分使用的是哪个用户连接导致,而且,如果有多个用户且<table>没有指定schema的话,还可能导致生成的的pojo里面的字段与数据库对应表的字段不全的现象,也就是你在数据库里明明有那个字段,但是生成的pojo里却死活没有那个字段对应的映射
以下代码已上传到github,有需要的可以去点个star哦
https://github.com/legend-c/mybatis-generator.git
下面此贴一下我的解决方案:
在generatorConfig.xml配置表名的时候,在<table>标签上增加一个schema属性,写上数据库的连接的用户名
这样就完成了,是不是很简单,有用的请点个赞支持下呗