BindingException 异常是 MyBatis 框架中自定义的异常,顾名思义指的是绑定出现问题。

在 MyBatis 框架中,有很多情况下会出现绑定问题。本文主要给大家介绍一下参数绑定异常的情况,如下所示:

<insert id="insertUser" parameterType="User">
  insert into users (id, username, password)
  values (#{id}, #{username}, #{password})
</insert>

如果 User 类型的参数对象传递到了语句中,会查找 id、username 和 password 属性,然后将它们的值传入预处理语句的参数中。但是,如果使用 Map 类型的参数:

<insert id="insertUser" parameterType="map">
  insert into users (id, username, password)
  values (#{id}, #{username}, #{password})
</insert>

则上面是SQL执行过程中会发出问题:

throw new BindingException("Parameter '" + key + "' not found. Available parameters are " + keySet());

这是因为在MyBatis中当有两个及两个以上的多个参数用Map类型传入时,key的命名方式应该是param1、param2…或者arg0、arg1…的形式。

标签: none

添加新评论