2009-11-27 52 views
2

我目前使用如何在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> 

缺什么?

回答

0

原来有什么不妥上面的代码。如果我们将返回数据类型从布尔型更改为其他任何类型,它将起作用。看起来布尔没有被正确支持。

同样正如Jim所建议的那样,CDATA不是小鬼。它适用于或不适用。

0

在CALL中有两个参数,但是有三个参数的parameterMap。你有一个结果,但没有resultMap。

不确定CDATA是否伤害任何东西,但不应该需要。

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

0

需要注意的重要一点是,即使对于函数调用,ibatis也会在输入参数映射本身中返回结果。在这种情况下参数1将举行函数调用的结果

(和无效的Java方法queryForObject()..返回)