栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

The XML location is ‘com/child/manager/mapper/TeacherMapper.xml‘. Cause: java.lang.IllegalArgumentEx

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

The XML location is ‘com/child/manager/mapper/TeacherMapper.xml‘. Cause: java.lang.IllegalArgumentEx

这个错误,我找了好久都没有找到解决方法,最后发现是因为我的TeacherMapper.xml文件内有大量重复的语句,
这是连续使用mybatis generator没有删除上一次生成的文件造成的,应该是它检索到文件名称不管里面有啥内容就只管往里面填,不管重不重复。

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'teacherMapper' defined in file [E:ManagertargetclassescomchildmanagermapperTeacherMapper.class]: Invocation of init method failed; nested exception is java.lang.IllegalArgumentException: org.apache.ibatis.builder.BuilderException: Error parsing Mapper XML. The XML location is 'com/child/manager/mapper/TeacherMapper.xml'. Cause: java.lang.IllegalArgumentException: Result Maps collection already contains value for com.child.manager.mapper.TeacherMapper.baseResultMap
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1804) ~[spring-beans-5.3.16.jar:5.3.16]
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:620) ~[spring-beans-5.3.16.jar:5.3.16]
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542) ~[spring-beans-5.3.16.jar:5.3.16]
	at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) ~[spring-beans-5.3.16.jar:5.3.16]
	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-5.3.16.jar:5.3.16]
	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) ~[spring-beans-5.3.16.jar:5.3.16]
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) ~[spring-beans-5.3.16.jar:5.3.16]
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:934) ~[spring-beans-5.3.16.jar:5.3.16]
	at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:918) ~[spring-context-5.3.16.jar:5.3.16]
	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:583) ~[spring-context-5.3.16.jar:5.3.16]
	at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:145) ~[spring-boot-2.6.4.jar:2.6.4]
	at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:740) [spring-boot-2.6.4.jar:2.6.4]
	at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:415) [spring-boot-2.6.4.jar:2.6.4]
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:303) [spring-boot-2.6.4.jar:2.6.4]
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1312) [spring-boot-2.6.4.jar:2.6.4]
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1301) [spring-boot-2.6.4.jar:2.6.4]
	at com.child.manager.ManagerApplication.main(ManagerApplication.java:12) [classes/:na]
Caused by: java.lang.IllegalArgumentException: org.apache.ibatis.builder.BuilderException: Error parsing Mapper XML. The XML location is 'com/child/manager/mapper/TeacherMapper.xml'. Cause: java.lang.IllegalArgumentException: Result Maps collection already contains value for com.child.manager.mapper.TeacherMapper.baseResultMap
	at org.mybatis.spring.mapper.MapperFactoryBean.checkDaoConfig(MapperFactoryBean.java:83) ~[mybatis-spring-2.0.7.jar:2.0.7]
	at org.springframework.dao.support.DaoSupport.afterPropertiesSet(DaoSupport.java:44) ~[spring-tx-5.3.16.jar:5.3.16]
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1863) ~[spring-beans-5.3.16.jar:5.3.16]
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1800) ~[spring-beans-5.3.16.jar:5.3.16]
	... 16 common frames omitted
Caused by: org.apache.ibatis.builder.BuilderException: Error parsing Mapper XML. The XML location is 'com/child/manager/mapper/TeacherMapper.xml'. Cause: java.lang.IllegalArgumentException: Result Maps collection already contains value for com.child.manager.mapper.TeacherMapper.baseResultMap
	at org.apache.ibatis.builder.xml.XMLMapperBuilder.configurationElement(XMLMapperBuilder.java:123) ~[mybatis-3.5.9.jar:3.5.9]
	at org.apache.ibatis.builder.xml.XMLMapperBuilder.parse(XMLMapperBuilder.java:95) ~[mybatis-3.5.9.jar:3.5.9]
	at org.apache.ibatis.builder.annotation.MapperAnnotationBuilder.loadXmlResource(MapperAnnotationBuilder.java:179) ~[mybatis-3.5.9.jar:3.5.9]
	at org.apache.ibatis.builder.annotation.MapperAnnotationBuilder.parse(MapperAnnotationBuilder.java:118) ~[mybatis-3.5.9.jar:3.5.9]
	at org.apache.ibatis.binding.MapperRegistry.addMapper(MapperRegistry.java:72) ~[mybatis-3.5.9.jar:3.5.9]
	at org.apache.ibatis.session.Configuration.addMapper(Configuration.java:864) ~[mybatis-3.5.9.jar:3.5.9]
	at org.mybatis.spring.mapper.MapperFactoryBean.checkDaoConfig(MapperFactoryBean.java:80) ~[mybatis-spring-2.0.7.jar:2.0.7]
	... 19 common frames omitted
Caused by: java.lang.IllegalArgumentException: Result Maps collection already contains value for com.child.manager.mapper.TeacherMapper.baseResultMap
	at org.apache.ibatis.session.Configuration$StrictMap.put(Configuration.java:1037) ~[mybatis-3.5.9.jar:3.5.9]
	at org.apache.ibatis.session.Configuration$StrictMap.put(Configuration.java:993) ~[mybatis-3.5.9.jar:3.5.9]
	at org.apache.ibatis.session.Configuration.addResultMap(Configuration.java:749) ~[mybatis-3.5.9.jar:3.5.9]
	at org.apache.ibatis.builder.MapperBuilderAssistant.addResultMap(MapperBuilderAssistant.java:209) ~[mybatis-3.5.9.jar:3.5.9]
	at org.apache.ibatis.builder.ResultMapResolver.resolve(ResultMapResolver.java:47) ~[mybatis-3.5.9.jar:3.5.9]
	at org.apache.ibatis.builder.xml.XMLMapperBuilder.resultMapElement(XMLMapperBuilder.java:289) ~[mybatis-3.5.9.jar:3.5.9]
	at org.apache.ibatis.builder.xml.XMLMapperBuilder.resultMapElement(XMLMapperBuilder.java:254) ~[mybatis-3.5.9.jar:3.5.9]
	at org.apache.ibatis.builder.xml.XMLMapperBuilder.resultMapElements(XMLMapperBuilder.java:246) ~[mybatis-3.5.9.jar:3.5.9]
	at org.apache.ibatis.builder.xml.XMLMapperBuilder.configurationElement(XMLMapperBuilder.java:119) ~[mybatis-3.5.9.jar:3.5.9]
	... 25 common frames omitted


Process finished with exit code 1

解决:
原来我的TeacherMapper文件是这样的,发现了没有里面有一大段是重复的。




  
    
    
  
  
    TeaId, passwd
  
  
    select
    
    from teacher
    where TeaId = #{teaid,jdbcType=INTEGER}
  
  
    delete from teacher
    where TeaId = #{teaid,jdbcType=INTEGER}
  
  
    insert into teacher (TeaId, passwd)
    values (#{teaid,jdbcType=INTEGER}, #{passwd,jdbcType=VARCHAR})
  
  
    insert into teacher
    
      
        TeaId,
      
      
        passwd,
      
    
    
      
        #{teaid,jdbcType=INTEGER},
      
      
        #{passwd,jdbcType=VARCHAR},
      
    
  
  
    update teacher
    
      
        passwd = #{passwd,jdbcType=VARCHAR},
      
    
    where TeaId = #{teaid,jdbcType=INTEGER}
  
  
    update teacher
    set passwd = #{passwd,jdbcType=VARCHAR}
    where TeaId = #{teaid,jdbcType=INTEGER}
  



//往下都是重复了上面的内容!!!我竟然两个小时才发现。
  
    
    
  
  
    TeaId, passwd