避坑!Mybatis Generator 生成文件的时候错误使用了其它数据库的同名数据表(关于nullCatalogMeansCurrent参数)

刚学完mybatis 的逆向工程和 springbean的实例化,然后自己结合二者练习的时候遇到了一个大坑,花了很长时间才搞清楚问题所在。整个过程如下:

1、首先我创建了一个maven工程,配置完pom.xml以及一下几个配置文件

避坑!Mybatis Generator 生成文件的时候错误使用了其它数据库的同名数据表(关于nullCatalogMeansCurrent参数)

 

 

 2、然后双击maven中的这个插件,从而生成mapper接口,pojo以及mapper.xml文件  

避坑!Mybatis Generator 生成文件的时候错误使用了其它数据库的同名数据表(关于nullCatalogMeansCurrent参数)

 

 3、SpringBean的实例化,通过配置applicationConfig.xml文件,此处我使用了动态工厂

避坑!Mybatis Generator 生成文件的时候错误使用了其它数据库的同名数据表(关于nullCatalogMeansCurrent参数)

 

4、在controller中运行我的测试代码

避坑!Mybatis Generator 生成文件的时候错误使用了其它数据库的同名数据表(关于nullCatalogMeansCurrent参数)

 

 

结果控制台一片红

避坑!Mybatis Generator 生成文件的时候错误使用了其它数据库的同名数据表(关于nullCatalogMeansCurrent参数)

 

后来经过几番试错查询问题所在,终于发现mapper文件里面内容过多,有两组resultMap,而且属性跟数据库中的表字段对应不上,同时发现另外一个数据库有同名表格,此时终于发现问题所在。

这应该是MySQL的问题,于是查到有关 nullCatalogMeansCurrent = true 的参数设置问题,该参数有两种配置方式如下:

第一种在generatorConfig.xml中 配置

避坑!Mybatis Generator 生成文件的时候错误使用了其它数据库的同名数据表(关于nullCatalogMeansCurrent参数)

 

 

 

 第二种 直接在jdbc.properties  中配置,直接在url 后面拼接此参数

避坑!Mybatis Generator 生成文件的时候错误使用了其它数据库的同名数据表(关于nullCatalogMeansCurrent参数)

 

 

 

我使用的是第二种方式,删除了所有mapper.xml,mapper接口以及pojo,然后重新运行generator生成文件,测试代码,问题解决,大功告成 。

 

避坑!Mybatis Generator 生成文件的时候错误使用了其它数据库的同名数据表(关于nullCatalogMeansCurrent参数)

上一篇:Oracle的体系结构


下一篇:SQL 无法执行脚本 - 没有足够的内存继续执行程序