内容简介:在使用MyBatis Generator生成代码的过程中,曾经遇到一个坑,每次生成mapper.xml的时候并不是直接覆盖原文件,而是在原文件中追加了新的内容,导致运行项目出错,本文主要讲解如何解决这个问题。使用的是mall-tiny-02的代码,代码地址:发现正常运行,启动成功!
在使用MyBatis Generator生成代码的过程中,曾经遇到一个坑,每次生成mapper.xml的时候并不是直接覆盖原文件,而是在原文件中追加了新的内容,导致运行项目出错,本文主要讲解如何解决这个问题。
问题重现
示例代码
使用的是mall-tiny-02的代码,代码地址: github.com/macrozheng/…
直接运行MallTinyApplication的main函数
发现正常运行,启动成功!
运行代码生成器
运行com.macro.mall.tiny.mbg.Generator的main方法
重新启动MallTinyApplication的main函数
发现已经无法正常运行,其中有这么一行关键性的错误:
nested exception is org.apache.ibatis.builder.BuilderException: Error parsing Mapper XML. The XML location is 'file [D:\developer\github\mall-learning\mall-tiny-02\target\classes\com\macro\mall\tiny\mbg\mapper\PmsBrandMapper.xml]'. Cause: java.lang.IllegalArgumentException: Result Maps collection already contains value for com.macro.mall.tiny.mbg.mapper.PmsBrandMapper.BaseResultMap 复制代码
表明了PmsBrandMapper.xml文件解析错误,BaseResultMap重复定义。
查看PmsBrandMapper.xml文件
从中可以发现MyBatis Generator生成的mapper.xml文件信息是直接追加在原来的文件上的,并不是直接覆盖,导致了这个错误。
问题解决
以前一直以为是MyBatis Generator生成的问题,直接删除mapper.xml所在文件夹,重新生成就好了,现在提供一种MyBatis Generator官方提供的解决方法。
升级MyBatis Generator的版本
MyBatis Generator 在1.3.7版本提供了解决方案,我们目前使用的版本为1.3.3。
<!-- MyBatis 生成器 -->
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<version>1.3.7</version>
</dependency>
复制代码
在generatorConfig.xml文件中添加覆盖mapper.xml的插件
<!--生成mapper.xml时覆盖原文件--> <plugin type="org.mybatis.generator.plugins.UnmergeableXmlMappersPlugin" /> 复制代码
以上所述就是小编给大家介绍的《MyBatis Generator使用过程中踩过的一个坑》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- 使用 pprof 分析变量逃逸过程
- Spring的Property配置加载和使用过程及Environment的初始化过程
- 使用MyBatis轻松实现递归查询与存储过程调用
- Hive SQL 使用过程中的奇怪现象
- 如何在基于Bytom开发过程中使用Bigchaindb
- MongoDB使用过程中的报错处理(持续更新)
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
中国制造2025:产业互联网开启新工业革命
夏妍娜、赵胜 / 机械工业出版社 / 2016-2-22 / 49.00
过去20年,是中国消费互联网肆意生长的"黄金20年",诞生了诸如BAT等互联网巨头,而时至今日,风口正逐渐转向了产业互联网。互联网这一摧枯拉朽的飓风,在改造了消费服务业之后,正快速而坚定地横扫工业领域,拉开了产业互联网"关键30年"的大幕。 "中国制造2025"规划,恰是中国政府在新一轮产业革命浪潮中做出的积极举措,是在"新常态"和"供给侧改革"的背景下,强调制造业在中国经济中的基础作用,认......一起来看看 《中国制造2025:产业互联网开启新工业革命》 这本书的介绍吧!