我使用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文件中指定参数名称。我可以通过名称引用一个参数。
答案 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
的所有参数放入地图。