我目前正在使用
<parameterMap class="map" id="param1">
<parameter property="result" jdbcType="BOOLEAN" javaType="boolean" mode="OUT"/>
<parameter property="arg1" jdbcType="VARCHAR" mode="IN"/>
<parameter property="resultCode" jdbcType="INTEGER" javaType="int" mode="OUT"/>
</parameterMap>
<procedure id="contAvail" parameterMap="param1">
<![CDATA[
{ ? = call pkg.func(?,?)}
]]>
</procedure>
缺少什么?
答案 0 :(得分:0)
CALL中有两个参数,但有一个参数Map有三个参数。您有一个结果但没有resultMap。
不确定CDATA是否有任何伤害,但不应该这样做。
有关详细信息,请参阅online help。另请查看this和this。
答案 1 :(得分:0)
事实证明上面的代码没有任何问题。如果我们将返回数据类型从布尔值更改为其他任何内容,它就可以工作。似乎没有正确支持布尔值。
正如吉姆正确地建议的那样,CDATA不是imp。它可以使用或不使用它。
答案 2 :(得分:0)
需要注意的一点是,即使是函数调用,ibatis也会在输入参数映射中返回结果。在这种情况下,param1将保存函数调用的结果(并且在java方法queryForObject()中返回null。)