详解Mybatis逆向工程中使用Mysql8.0版本驱动遇到的问题
Mybatis逆向工程中使用Mysql8.0版本驱动遇到的问题 在使用Mybatis逆向工程时,如果使用Mysql8.0版本驱动,可能会遇到一些问题。本文将详细介绍这些问题的解决方法。 一、问题描述 在使用Mysql8.0版本驱动时,可能会遇到Result Maps collection already contains value for BaseResultMap的错误。这个错误可能是由于生成了多次Mapper、DAO和POJO文件,导致XXXMapper.xml文件中出现了重复的resultMap。 二、初步探索 初步探索发现,多次生成Mapper、DAO和POJO文件可能是导致这个错误的原因。但是,删除这些文件后重新生成,还是会报这个错。于是,我们打开了出现问题的那个Mapper.xml文件,搜索BaseResultMap,发现其作为resultMap的id居然出现了三次,还有很多其他的sql标签的id也有很多重复的。 三、深入探索 深入探索发现,升级到Mysql8.0驱动后的使用Mybatis逆向工程生成的文件或不一样。于是,我们将pom.xml里的Mysql驱动版本调整到了5.1.10,删除干净文件,然后重新生成,发现之前出错的那个Mapper.xml里的以BaseResultMap作为id的resultMap只有一个了,其他的resultMap中的id也是唯一的。 四、解决方法 解决方法是添加“nullCatalogMeansCurrent=true”属性到JDBC URL中,以禁用Mybatis逆向工程生成代码的行为。这可以避免生成多余的resultMap和sql标签。 五、结论 在使用Mybatis逆向工程时,如果使用Mysql8.0版本驱动,可能会遇到一些问题。解决方法是添加“nullCatalogMeansCurrent=true”属性到JDBC URL中,以禁用Mybatis逆向工程生成代码的行为。
- 粉丝: 3
- 资源: 920
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助