1. 程式人生 > >解決Mybatis--java.lang.IllegalArgumentException: Result Maps collection already contains value for XXX

解決Mybatis--java.lang.IllegalArgumentException: Result Maps collection already contains value for XXX

感謝幻滅若水的部落格。

這兩天因為專案需要整合Spring、struts2、mybatis三大框架,但啟動的時候總出現這個錯誤,困擾我好久,在網上找到的答案都不是我想要的,今天終於知道原因了。

    user-mapper.xml如下:

複製程式碼
 1 <?xml version="1.0" encoding="UTF-8"?>
 2  <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" 
 3      "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 4  <mapper 
namespace="com.bmdc.dj.user.dao.UserDao"> 5 <resultMap type="user" id="userResult"> 6 <id property="user_id" column="USER_ID"/> 7 <result property="login_name" column="LOGIN_NAME"/> 8 <result property="real_name" column="REAL_NAME"/> 9 <
result property="password" column="PASSWORD"/> 10 </resultMap> 11 <insert id="add" parameterType="user"> 12 insert into users (user_id, login_name, real_name, password) 13 values(#{user_id}, #{login_name}, #{real_name}, #{password}) 14 </insert> 15 </
mapper>
複製程式碼

    其中,namespace是介面路徑。

    Mybatis.xml如下: 

複製程式碼
 1 <?xml version="1.0" encoding="UTF-8" ?>
 2 <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
 3 <configuration>
 4 
 5     <!-- 別名 -->
 6     <typeAliases>
 7         <typeAlias type="com.bmdc.dj.user.domain.User" alias="user"/>
 8     </typeAliases>
 9      <mappers>    
10         <mapper resource="com/bmdc/dj/user/dao/user-mapper.xml" />    
11     </mappers>
12 </configuration>
複製程式碼

    其他配置檔案都正確,我就不寫了。這樣就會出現 java.lang.IllegalArgumentException: Result Maps collection already contains value for XXX這個錯誤。

    解決辦法是:刪除Mybatis.xml中的<mappers>標籤所有內容。因為如果user-mapper.xml與namespace的介面在同一路徑下,就不需要在mybaits.xml中再進行配置了。

    修改後的Mybatis.xml如下:

複製程式碼
1 <?xml version="1.0" encoding="UTF-8" ?>
2 <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
3 <configuration>
4 
5     <!-- 別名 -->
6     <typeAliases>
7         <typeAlias type="com.bmdc.dj.user.domain.User" alias="user"/>
8     </typeAliases>
9 </configuration>
複製程式碼

    搞定!

後來發現,並不是這個問題,而是在使用mybatis的逆向工程的時候,執行一次以後沒有刪除mapper.xml檔案,所以導致xml檔案中有兩次resultMap,所以才報這個錯誤,大家在使用逆向工程的時候一定要將原來生成的檔案刪除呀。


相關推薦

解決Mybatis--java.lang.IllegalArgumentException: Result Maps collection already contains value for XXX

感謝幻滅若水的部落格。 這兩天因為專案需要整合Spring、struts2、mybatis三大框架,但啟動的時候總出現這個錯誤,困擾我好久,在網上找到的答案都不是我想要的,今天終於知道原因了。     user-mapper.xml如下: 1 <?xml

[異常]Caused by: java.lang.IllegalArgumentException: Result Maps collection already contains value for

Caused by: java.lang.IllegalArgumentException: Result Maps collection already contains value for at org.apache.ibatis.session.Configuration$St

java.lang.IllegalArgumentException: Mapped Statements collection already contains value for xxx.xxx

初次配置mybatis,執行時出錯,報錯資訊如下 java.lang.IllegalArgumentException: Mapped Statements collection already contains value for xxx.xxx.dao.methodname 後來發現原來是m

Mybatis java.lang.IllegalArgumentException: Result Maps collection does not contain value for com

 1.java.lang.IllegalArgumentException: Result Maps collection does not contain value for com.model.User     解決:一、 當mapper XML檔案中存在 <r

Spring Boot Mybatis Result Maps collection already contains value for *.BaseResultMap

文件 刪除 oot read color pri ready spa 復制 當你復制一個*Mapper.xml文件到項目工程中,運行報錯Mybatis Result Maps collection already contains value for *.BaseResul

關於mybatis啟動報Result Maps collection already contains value for ...的問題總結

今天在用mybatis逆向工程生成程式碼後,啟動專案測試時候出現了這個錯誤。關於這個錯誤的原因,各有不同。查了很長時間,下面就這個問題列舉了一些可能出錯的地方。 1、當同一個xml對映檔案記憶體在兩個相同的id(即兩個sql語句的id相同)時會報此錯 解決:查詢sql語句的id值修改 2

Result Maps collection already contains value for xxxMapper.BaseResultMap -------錯誤解決辦法

其一問題解決方案1 :  https://blog.csdn.net/qq_39507276/article/details/81628092    Mybatis-Generator在生成Mapper.xml檔案時,會在原來基礎上再生成,導致內容重複

Result Maps collection already contains value for com.xxx.xxxMapper.BaseResultMap問題解決

mybatis出現Result Maps collection already contains value for com.xxx.xxxMapper.r.BaseResultMap的錯誤, 既有可能是MybatisGenerator逆向生成的問題。 假如使用MybatisGenerato

mybatis 專案啟動時報“Result Maps collection already contains value forxxx”錯誤

在使用mybatis的逆向工程生成程式碼時報錯,“Result Maps collection already contains value forxxx”有可能是如下原因: 生成的xml檔案實現介面

Result Maps collection already contains value for BaseResultMap

col mybatis base 發現 進行 關系 ltm 自動 問題 在時Mybatis自動生成工具發生了兩次 Result Maps collection already contains value for BaseResultMap 這種異常,現在記錄一下 原因一:

項目啟動時報錯:Result Maps collection already contains value for com.xxx.xxx.xx.mapper.XxxMapper.baseResultMap

rom efi 英語水平 base ont mapper 出現 技術 aps Caused by: java.lang.IllegalArgumentException: Result Maps collection already contains value for c

Result Maps collection already contains value for

cau ase XML tail 問題: https nbsp ONBUILD onf 運行tomcat 報錯 org.apache.ibatis.builder.BuilderException: Error parsing Mapper XML. Cause:

Result Maps collection already contains value for com.*.*.*Mapper.BaseResultMap

問題:在使用MyBatis的過程中,啟動專案總是報錯誤,如下 Caused by: org.apache.ibatis.builder.BuilderException: Error parsing Mapper XML. Cause: java.lang.IllegalArgumentExce

ssm之路(15)整合ssm+逆向工程開發注意事項(Result Maps collection already contains value for cn.itcast.ssm.mapper.It)

這裡有個結合逆向工程來使用的坑: 上一章中整合遇到問題,有個關於逆向工程的坑,這裡需要說明一下: 因為我是通過mapper代理方式來整合的,所以當我再mapper裡新建我要自定義的檔案時,會造成無意不遵循規範的錯誤 我是通過mapper代理開發的方式來弄的,通過Ma

ssh整合時,mybaits報錯"Result Maps collection already contains value for......"

遇到這個問題,嘗試了很多方法,但都解決不了。 後來發現,是由於mybaits逆向生成XXXmapper.xml檔案時,由於 運行了多次,該檔案下的內容重複了。導致有重複的id命名,才會報這個錯誤。

Result Maps collection already contains value for com.miniprogram.meirong.user.dao.UserMapper.BaseResultMap

出現這種情況了,是mybatis-generator生成mapper.xml一遍之後。 再修改資料庫,然後再生成,它不會刪去之前的,只是增加,就會出現兩段相同的程式碼。 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper

Mybatis報錯:java.lang.IllegalArgumentException: Result Maps collection does not contain value for java

在練習Shiro的過程中,Mybatis報錯: 十二月 25, 2018 3:53:12 下午 org.apache.catalina.core.StandardWrapperValve invoke 嚴重: Servlet.service() for servlet [springmvc] i

java.lang.IllegalArgumentException: Result Maps collection does not contain value for xxx.xxx.xxx

一、問題分析 Mybatis報錯: java.lang.IllegalArgumentException: Result Maps collection does not contain value

java.lang.IllegalArgumentException: Result Maps collection does not contain value forcom.imooc.bean

org.apache.ibatis.exceptions.PersistenceException: ### Error querying database.  Cause: java.lang.I

解決 Cause: java.lang.IllegalArgumentException: Mapped Statements collection does not contain value fo

前言:最近學習spring和mybatis的整合時遇到了一個問題( Cause: java.lang.IllegalArgumentException: Mapped Statements collection does not contain value fo