900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > ibatis mysql存储过程返回值_ibatis调用mysql存储过程

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

时间:2024-06-02 17:56:43

相关推荐

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

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

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

CREATE PROCEDURESYS_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;

}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。