使用参数名称时映射器中的错误

2022-09-04 07:24:20

我正在使用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}一切正常。

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

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

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


答案 1

在映射器接口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


答案 2

推荐