13

我正在使用带有 mybatis 3.2.3 的 Spring 3.2.0 MVC 和带有 ojdbc6 11.2.0.2.0 的 mybatis-spring 1.2.1

我有一个使用 2 个不同类型(日期和整数)参数定义的 XML 映射器。我在查询中将它们引用为 #{myid} 和 #{mydate} 但我从 ibatis 得到一个错误:

org.apache.ibatis.binding.BindingException: Parameter 'myid' not found. Available parameters are [1, 0, param1, param2]

如果我将参数引用为 #{0} 和 #{1} 一切正常。

我有另一个只有一个参数的映射器,我可以将参数引用为 #{myDate} (唯一的区别是我在 XML 中有以下内容:

<select id="getAllbyDate" parameterType="date" resultType="com.test.myTest">

我的问题是具有多个参数的查询不允许我在 XML 文件中指定参数名称。我可以使用单个参数按名称引用。

4

1 回答 1

27

在映射器接口java文件中编写这样的方法

public List<com.test.myTest> getAllbyDate(@Param("date") Date date, @Param("myid") int myid) 

然后,修改xml文件

<select id="getAllbyDate" parameterType="map" resultType="com.test.myTest"> 

Mybatis 把所有带注解的参数都@Param放到map中。

于 2013-11-15T08:47:48.293 回答