Caused by: java.lang.IllegalArgumentException: Mapped Statements collection does not contain value f

简介: Caused by: java.lang.IllegalArgumentException: Mapped Statements collection does not contain value f

报错:

Caused by: java.lang.IllegalArgumentException: Mapped Statements collection does not contain value for FormulaDetailMapper.findByfIdAndmId............

解决方案一:

经测试应该是忘了使用@Param。当只有一个参数时,Mapper中可以不使用

public void insertAdmin(String username);

但是有多个参数时必须用:

public void insertAdmin(@Param("username")String username,@Param("password")String password);

解决方案二:

  1. 检查配置文件是否正确
  2. 检查SQL语句拼写是否正确
  3. 检查参数是否完整

     3.1.检查该Mapper文件中的所有方法,查看是否有id重复的方法;

      3.2.检查方法中的parameterType和resultType,查看相应的参数类型是否有错误。

解决方案三:

  熟读mybatis,正确使用配置节点:

 <!-- 通过resultMap映射实体类和表字段的关系 -->
    <resultMap type="Menu" id="menuResultMap">
        <!-- 用id属性来映射主键字段 -->
        <id column="MENU_ID" property="MENU_ID"/>
        <!-- 用result属性来映射非主键字段 -->
        <result column="MENU_NAME" property="MENU_NAME"/>
        <result column="PARENT_ID" property="PARENT_ID"/>
        <result column="MENU_ORDER" property="MENU_ORDER"/>
    </resultMap>
    <!--表名 -->
  <sql id="tableName">
    SYS_MENU
  </sql>
  <!-- 字段 -->
  <sql id="Field">
    MENU_ID,
    MENU_NAME,
    PARENT_ID,
    MENU_ORDER,
  </sql>
  <!-- 字段值 -->
  <sql id="FieldValue">
    #{MENU_ID},
    #{MENU_NAME},
    #{PARENT_ID},
    #{MENU_ORDER}
  </sql>
    <!--新增 -->
  <insert id="insertMenu" parameterType="Menu">
    insert into 
      <include refid="tableName"></include> 
    (
      <include refid="Field"></include>
    ) values (
      <include refid="FieldValue"></include>
    )
  </insert>
    <!--删除菜单-->
  <delete id="deleteMenuById" parameterType="String">
    delete from 
    <include refid="tableName"></include> 
    where MENU_ID=#{MENU_ID} 
  </delete>
    <!--编辑 -->
  <update id="updateMenu" parameterType="Menu">
    update 
    <include refid="tableName"></include> 
    set 
      MENU_NAME =#{MENU_NAME},
      MENU_URL  =#{MENU_URL} ,
      MENU_ORDER=#{MENU_ORDER},
      MENU_STATE=#{MENU_STATE},
      MENU_TYPE =#{MENU_TYPE}
    where 
      MENU_ID=#{MENU_ID}
  </update>
    <!--通过菜单ID获取数据 -->
  <select id="getMenuById" parameterType="pd" resultType="pd">
    select  
      <include refid="Field"></include>
     from 
      <include refid="tableName"></include>
     where MENU_ID=#{MENU_ID}
  </select>

以下为mybatis 各配置文件官方文档 ,客官,请过目:

MYTAIS XML配置 XML映射文件  

               动态 SQL  

                       Java API  SQL语句构建器类  日志

目录
相关文章
|
2月前
|
存储 监控 算法
Java中的内存管理:理解Garbage Collection机制
本文将深入探讨Java编程语言中的内存管理,着重介绍垃圾回收(Garbage Collection, GC)机制。通过阐述GC的工作原理、常见算法及其在Java中的应用,帮助读者提高程序的性能和稳定性。我们将从基本原理出发,逐步深入到调优实践,为开发者提供一套系统的理解和优化Java应用中内存管理的方法。
|
3月前
|
监控 算法 Java
Java中的内存管理:理解Garbage Collection机制
本文将深入探讨Java编程语言中的内存管理,特别是垃圾回收(Garbage Collection, GC)机制。我们将从基础概念开始,逐步解析垃圾回收的工作原理、不同类型的垃圾回收器以及它们在实际项目中的应用。通过实际案例,读者将能更好地理解Java应用的性能调优技巧及最佳实践。
103 0
|
27天前
|
JSON Java 关系型数据库
Java更新数据库报错:Data truncation: Cannot create a JSON value from a string with CHARACTER SET 'binary'.
在Java中,使用mybatis-plus更新实体类对象到mysql,其中一个字段对应数据库中json数据类型,更新时报错:Data truncation: Cannot create a JSON value from a string with CHARACTER SET 'binary'.
41 4
Java更新数据库报错:Data truncation: Cannot create a JSON value from a string with CHARACTER SET 'binary'.
|
1月前
|
存储 Java API
Java交换map的key和value值
通过本文介绍的几种方法,可以在Java中实现Map键值对的交换。每种方法都有其优缺点,具体选择哪种方法应根据实际需求和场景决定。对于简单的键值对交换,可以使用简单遍历法或Java 8的Stream API;对于需要处理值不唯一的情况,可以使用集合存储或Guava的Multimap。希望本文对您理解和实现Java中的Map键值对交换有所帮助。
37 1
|
3月前
|
Java API Nacos
Caused by: java.lang.IllegalStateException: No Feign Client for loadBalancing defined. Did you forge
Caused by: java.lang.IllegalStateException: No Feign Client for loadBalancing defined. Did you forge
197 2
|
3月前
|
Java
flyway报错Caused by: java.lang.NoSuchMethodError: org.flywaydb.core.api.configuration.FluentConfigurat
flyway报错Caused by: java.lang.NoSuchMethodError: org.flywaydb.core.api.configuration.FluentConfigurat
54 2
|
3月前
|
监控 算法 Java
深入理解Java中的垃圾回收机制在Java编程中,垃圾回收(Garbage Collection, GC)是一个核心概念,它自动管理内存,帮助开发者避免内存泄漏和溢出问题。本文将探讨Java中的垃圾回收机制,包括其基本原理、不同类型的垃圾收集器以及如何调优垃圾回收性能。通过深入浅出的方式,让读者对Java的垃圾回收有一个全面的认识。
本文详细介绍了Java中的垃圾回收机制,从基本原理到不同类型垃圾收集器的工作原理,再到实际调优策略。通过通俗易懂的语言和条理清晰的解释,帮助读者更好地理解和应用Java的垃圾回收技术,从而编写出更高效、稳定的Java应用程序。
|
2月前
|
存储 安全 Java
Java基础-Collection类关系图
Java基础-Collection类关系图
20 0
|
4月前
|
JSON 前端开发 JavaScript
JSON parse error: Cannot deserialize value of type `java.lang.Integer` from Boolean value
这篇文章讨论了前端Vue应用向后端Spring Boot服务传输数据时发生的类型不匹配问题,即后端期望接收的字段类型为`int`,而前端实际传输的类型为`Boolean`,导致无法反序列化的问题,并提供了问题的诊断和解决方案。
JSON parse error: Cannot deserialize value of type `java.lang.Integer` from Boolean value
|
4月前
Caused by: java.lang.ClassNotFoundException: javax.servlet.Filter
Caused by: java.lang.ClassNotFoundException: javax.servlet.Filter
73 3
下一篇
DataWorks