使用参数名称时映射器出错

时间:2013-11-15 00:06:40

标签: java mybatis

我使用Spring 3.2.0 MVC和mybatis 3.2.3以及mybatis-spring 1.2.1和ojdbc6 11.2.0.2.0

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

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

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

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

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

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

1 个答案:

答案 0 :(得分:25)

在mapper接口中,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的所有参数放入地图。