Au cours des deux derniers jours, le projet doit intégrer les trois principaux cadres de Spring, Struts2 et Mybatis, mais cette erreur se produit toujours lorsqu'elle est lancée, ce qui m'a troublé depuis longtemps. Les réponses que j'ai trouvées en ligne ne sont pas ce que je veux. Aujourd'hui, je connais enfin la raison.
L'User-Mapper.xml est le suivant:
<? xml version = "1.0" Encoding = "UTF-8"?> <! Doctype Mappep Public "- // Mybatis.org//dtd Mappen 3.0 // en" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace = "com.bmdc.dj.user.dao.userdao"> <resultmap type = "user" id = "userresult"> <id propriété = "user_id" chronn = "user_id" /> <résultat propriété = "login_name" column = "ligin_name" /> <result Property = "réel_name" chronn = "real_name" Column = "Password" /> </ ResultMap> <insert id = "add" ParameterType = "User"> Insérez dans les utilisateurs (user_id, login_name, réel_name, mot de passe) (# {user_id}, # # {login_name}, # {real_name}, #}) </ssert> </puwer>Où l'espace de noms est le chemin d'interface.
Mybatis.xml est le suivant:
<? xml version = "1.0" Encoding = "UTF-8"?> <! Doctype Configuration public "- // Mybatis.org//dtd config 3.0 // en" "http://mybatis.org/dtd/mybatis-> <typeases> Type = "com.bmdc.dj.user.domain.user" alias = "user" /> </ typealiases> <mapper ressource = "com / bmdc / dj / user / dao / user-mapper.xml" /> </ maps> </ configuration>
Les autres fichiers de configuration sont corrects, donc je ne les écrirai pas. Cela provoquera l'erreur java.lang.ILLEGALArgumentException: la collection de cartes de résultats contient déjà de la valeur pour xxx.
La solution est: supprimez tous les contenus de la balise <mappers> dans mybatis.xml. Parce que si l'interface entre user-mapper.xml et l'espace de noms est dans le même chemin, il n'est pas nécessaire de le configurer dans mybaits.xml.
Le Mybatis.xml modifié est le suivant:
<? xml version = "1.0" Encoding = "UTF-8"?> <! Doctype Configuration public "- // Mybatis.org//dtd config 3.0 // en" "http://mybatis.org/dtd/mybatis-> <typeases> Type = "com.bmdc.dj.user.domain.user" alias = "user" /> </pactaliases> </figuration>
Ce qui précède est l'introduction de l'éditeur à la façon de résoudre Mybatis - java.lang.LelegalargumentException: la collection de cartes de résultats contient déjà de la valeur pour X. J'espère que cela sera utile à tout le monde. Si vous avez des questions, veuillez me laisser un message et l'éditeur répondra à tout le monde à temps. Merci beaucoup pour votre soutien au site Web Wulin.com!