发生问题的环境
<!--mysbatis-->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.7</version>
</dependency>
<!--generator-->
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<version>1.4.0</version>
</dependency>
<!--mysql-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.27</version>
</dependency>
<!--log4j-->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
在pom.xml配置以上环境时,运行数据库逆向生成xml后,运行项目报错Result Maps collection already contains value for xxxMapper.BaseResultMap
问题原因
在生成的Mapper.xml文件中发现多个重复代码块:
并且,这几个BaseResultMap里面的内容还和数据库字段对不上!!!
解决方案
在mybatis官方文档中找到了解决的答案:
由于我的环境导入的是MySQL8.0的jar包,这就命中了官方所说中的Bug。
链接
所以,只需要在"generatorConfig.xml"中的jdbcConnectio
标签中添加以下代码即可
<property name="nullCatalogMeansCurrent" value="true"/>