日期:2014-05-17  浏览次数:20654 次

ibatis调用oracle存储过程返回结果为boolean的问题
存储过程定义:
PROCEDURE PROC_LIQUIDATE(P1 NUMBER, P2 NUMBER, P3 NUMBER, RESULT IN OUT BOOLEAN, MSG IN OUT VARCHAR2);
------------------------------------
ibatis sqlMap.xml:

<parameterMap class="Map" id="PROC_LIQUIDATEparam">
<parameter property="p1" jdbcType="INTEGER" javaType="java.lang.Long" mode="IN"/>
<parameter property="p2" jdbcType="INTEGER" javaType="java.lang.Long" mode="IN"/>
<parameter property="p3" jdbcType="INTEGER" javaType="java.lang.Long" mode="IN"/>
<parameter property="retBool" jdbcType="CHAR" javaType="java.lang.Boolean" mode="INOUT"/>
<parameter property="retMsg" jdbcType="VARCHAR" javaType="java.lang.String" mode="INOUT"/>
</parameterMap>


上述parameterMap经测试结果总是不对,总是报参数个数不对,或者参数类型冲突。

请问这里的sqlMap应该如何配置 ,特别是针对boolean类型的jdbcType于javaType如何映射?



------解决方案--------------------
查了下JDK API类java.sql.Types
static int BOOLEAN 标识一般 SQL 类型 BOOLEAN 的 Java 编程语言中的常量(有时称为类型代码)。

<parameter property="retBool" jdbcType="BOOLEAN" javaType="java.lang.Boolean" mode="INOUT"/>
应该这样才对。。
我的异常网推荐解决方案:oracle存储过程,http://www.aiyiweb.com/oracle-develop/177537.html