刚学完mybatis 的逆向工程和 springbean的实例化,然后自己结合二者练习的时候遇到了一个大坑,花了很长时间才搞清楚问题所在。整个过程如下:
1、首先我创建了一个maven工程,配置完pom.xml以及一下几个配置文件
2、然后双击maven中的这个插件,从而生成mapper接口,pojo以及mapper.xml文件
3、SpringBean的实例化,通过配置applicationConfig.xml文件,此处我使用了动态工厂
4、在controller中运行我的测试代码
结果控制台一片红
后来经过几番试错查询问题所在,终于发现mapper文件里面内容过多,有两组resultMap,而且属性跟数据库中的表字段对应不上,同时发现另外一个数据库有同名表格,此时终于发现问题所在。
这应该是MySQL的问题,于是查到有关 nullCatalogMeansCurrent = true 的参数设置问题,该参数有两种配置方式如下:
第一种在generatorConfig.xml中 配置
第二种 直接在jdbc.properties 中配置,直接在url 后面拼接此参数
我使用的是第二种方式,删除了所有mapper.xml,mapper接口以及pojo,然后重新运行generator生成文件,测试代码,问题解决,大功告成 。
避坑!Mybatis Generator 生成文件的时候错误使用了其它数据库的同名数据表(关于nullCatalogMeansCurrent参数)