求教:小弟使用 iBATIS 访问DB2的存储过程,对带有输出参数的总是不成功

foobarfoobar 2012-05-28 09:01:53
各位高人: 我今天建立了一个Java项目,使用iBATIS, 一开始还挺顺利, 使用一般的SQL也成功,调一个存储过程(没有输出参数的)也成功,然后调用带有输出参数的,却总是不成功。

我用的是 ibatis-2.3.4.726

下面贴出代码,都已经是最简单的了:

存储过程(有2个) 是 DB2 的

CREATE PROCEDURE "DB2INST1"."PROC_J_XCJS_Ts2" (
IN "V_IN_X" VARCHAR(10),
OUT "V_OT_2X" VARCHAR(10)
)

BEGIN

SET V_OT_2X = V_IN_X || '_link_' || V_IN_X;
END;


CREATE PROCEDURE "DB2INST1"."PROC_J_XCJS_Test" (
IN "V_IN_X" int,
OUT "V_OT_2X" int
)

BEGIN

SET V_OT_2X = V_IN_X * 2;
END;


XML的配置(有两段)

<parameterMap id="testOutParam" class="map">
<parameter property="V_IN_X" jdbcType="INTEGER" javaType="java.lang.Integer" mode="IN" />
<parameter property="V_OT_2X" jdbcType="INTEGER" javaType="java.lang.Integer" mode="OUT" />
</parameterMap>

<procedure id="XCJS_testOut" parameterMap="testOutParam">
{ call PROC_J_XCJS_Test( ? ) }
</procedure>

<parameterMap id="testOt2Param" class="map">
<parameter property="V_IN_X" jdbcType="VARCHAR" javaType="java.lang.String" mode="IN" />
<parameter property="V_OT_2X" jdbcType="VARCHAR" javaType="java.lang.String" mode="OUT" />
</parameterMap>

<procedure id="XCJS_testOt2" parameterMap="testOt2Param">
{ call PROC_J_XCJS_Ts2( ?, ? ) }
</procedure>

Java代码:

List myList = re.selectAllAccounts (); // 这句成功,就是从 iBATIS 官方的例子来的。下面接着用 re.sqlMapper 调一个不带输出参数的存储过程也成功

// 上面一行实际相当于执行 sqlMapper.queryForList( "..."); 是成功的

Map mPara = new HashMap();

mPara.put( "V_IN_X", new Integer(29) );
mPara.put( "V_OT_2X", null ); // new Integer(0 )
re.sqlMapper.update( "XCJS_testOut", mPara );

Map mPara2 = new HashMap();

mPara2.put( "V_IN_X", "OK" );
mPara2.put( "V_OT_2X", "1" );
re.sqlMapper.update ( "XCJS_testOt2", mPara2 );

// 像这样调 不带输出参数的存储过程,是成功的。

多谢了!
...全文
169 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
foobarfoobar 2012-05-31
  • 打赏
  • 举报
回复
谢谢帮顶。 今天被同事给找到答案了,原来环境要求存储过程的名字必须大写,这样一改就好了。
fanyuanwaifdl 2012-05-29
  • 打赏
  • 举报
回复
ibatIS
db2~ 帮顶~

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧