如何在iBatis中映射存储的包函数?

时间:2009-11-27 18:16:28

标签: ibatis

我目前正在使用

<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> 

缺少什么?

3 个答案:

答案 0 :(得分:0)

CALL中有两个参数,但有一个参数Map有三个参数。您有一个结果但没有resultMap。

不确定CDATA是否有任何伤害,但不应该这样做。

有关详细信息,请参阅online help。另请查看thisthis

答案 1 :(得分:0)

事实证明上面的代码没有任何问题。如果我们将返回数据类型从布尔值更改为其他任何内容,它就可以工作。似乎没有正确支持布尔值。

正如吉姆正确地建议的那样,CDATA不是imp。它可以使用或不使用它。

答案 2 :(得分:0)

需要注意的一点是,即使是函数调用,ibatis也会在输入参数映射中返回结果。在这种情况下,param1将保存函数调用的结果(并且在java方法queryForObject()中返回null。)