ibatis mysql存储过程返回值_ibatis调用mysql存储过程

ibtatis调用有输出参数的mysql存储过程的时候,居然要使用insert写法,汗!

procedure==========================================================

CREATE PROCEDURE SYS_SEQ_NEXTVAL_SP(in p_name varchar(10),out p_val int)

BEGIN

declare c_val int default 0;

select c_cur_val into c_val from SYS_SEQUENCE where c_name=p_name;

if c_val =0 then

set p_val=1;

insert into SYS_SEQUENCE values (p_name,1);

commit;

else

set p_val=c_val+1;

UPDATE SYS_SEQUENCE

SET  C_CUR_VAL= C_CUR_VAL+1

WHERE  C_NAME=p_name;

COMMIT;

end if;

END;

configuration file ================================================

javaType="java.lang.String" mode="IN" />

javaType="java.lang.Integer" mode="OUT" />

{CALL SYS_SEQ_NEXTVAL_SP (?,?)}

java file========================================================

public int doFindNextval(String prefix) throws Exception{

Map t_swapMap = new HashMap();

Integer t_seq = null;

t_swapMap.put("p_name", prefix);

t_swapMap.put("p_val", t_seq);

getIbatis().insert(S_GET_NEXTVAL, t_swapMap);

int result = ((Integer)t_swapMap.get("p_val")).intValue();

if( result <= 0 ){

throw new RuntimeException("get sequence failed.");

}

return result;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值