最近刚开始学习 springboot, 按照how2j的教程使用 MyBatis 的时候出现了以下异常 java.lang.IllegalArgumentException: Mapped Statements collection already contains value for xyz.thetbw.cloud ..

【MyBatis】关于 MyBatis 提示‘Mapped Statements collection already contains value for’的解决办法

最近刚开始学习 springboot, 按照how2j的教程使用 MyBatis 的时候出现了以下异常

java.lang.IllegalArgumentException: Mapped Statements collection already contains value for xyz.thetbw.cloud.dao.LinkDao.findAll. please check xyz/thetbw/cloud/dao/LinkDao.java (best guess) and xyz/thetbw/cloud/dao/LinkDao.java (best guess)

SharedScreenshot.jpg

大概就是映射的语句集合已包含值
然后几番百度,大概说的就是mapper.xml存在多个相同的 id, 然而我是用 springboot 加注解创建的,哪来的相同 id。
找了半天,终于在 google 上找到了正确答案(ps: 百度还是不靠谱)
原文地址

大概就是,mybatis 不允许有方法有相同的方法名,即使方法签名不同也不行
只能改名字,比如把getUser()``getUser(int id)后者改为getUserById(int id)

>﹏<睡觉

  • Spring

    Spring 是一个开源框架,是于 2003 年兴起的一个轻量级的 Java 开发框架,由 Rod Johnson 在其著作《Expert One-On-One J2EE Development and Design》中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为 JavaEE 应用程序开发提供集成的框架。

    581 引用 • 1195 回帖 • 841 关注
  • Java

    Java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由 Sun Microsystems 公司于 1995 年 5 月推出的。Java 技术具有卓越的通用性、高效性、平台移植性和安全性。

    2271 引用 • 7700 回帖 • 922 关注
  • MyBatis

    MyBatis 本是 Apache 软件基金会 的一个开源项目 iBatis,2010 年这个项目由 Apache 软件基金会迁移到了 google code,并且改名为 MyBatis ,2013 年 11 月再次迁移到了 GitHub。

    118 引用 • 394 回帖 • 767 关注
  • 碰壁
    1 引用 • 1 回帖
1 回帖   
请输入回帖内容...
  • thinrflbtlm  

    记得 dao 的映射好像是按方法名做 key,也就是说重载在这里是 gg 的。😭