gpt4 book ai didi

java - MyBatis注解调用Stored Procedure并获取Out Params

转载 作者:行者123 更新时间:2023-11-30 11:16:22 25 4
gpt4 key购买 nike

我正在使用 MyBATis-3 和 MyBATis-Spring。当我尝试使用 MyBatis 注释调用一个返回多个参数的存储过程时。我什么也没得到,我可以看到输入参数已传递到日志中的 SP,它卡在那里,没有任何进展,也没有抛出异常。

PFB 我试图从 MyBATis 访问的 Oracle 存储过程,

create or replace PROCEDURE C2C.GET_DATA
(
"IN_PARAM1" IN NUMBER,
"OUT_PARAM2" OUT SAMPLETABLE.COL2%TYPE,
"OUT_PARAM3" OUT SAMPLETABLE.COL3%TYPE,
"OUT_PARAM4" OUT SAMPLETABLE.COL4%TYPE
) AS

BEGIN
SELECT PARAM2,PARAM3,PARAM4 INTO
OUT_PARAM2,OUT_PARAM3,OUT_PARAM4
FROM C2C.SAMPLETABLE WHERE PARAM1=IN_PARAM1 ;

END C2C.GET_DATA;

PFB 映射器接口(interface)方法,

@Select(value= "{ CALL  C2C.GET_DATA( #{param1, mode=IN, jdbcType=INTEGER},#{param2, mode=OUT, jdbcType=VARCHAR},#{param3, mode=OUT, jdbcType=INTEGER},#{param4, mode=OUT, jdbcType=INTEGER})}")
@Options(statementType = StatementType.CALLABLE)
public void getData(Test test);

Test 对象包含在存储过程调用语句中作为输入传递的参数。

当我执行它时,它会卡在这里,

main Slf4jImpl 
==> Preparing: { CALL C2C.GET_DATA(?,?,?,?)}

main Slf4jImpl
==> Parameters: 60(Integer)

最佳答案

令人惊讶的是,如果我使用@Insert 注释,它会按预期工作。调用存储过程时出现一些奇怪的行为。让我知道是否还有其他人有除此之外的好的解决方案。

关于java - MyBatis注解调用Stored Procedure并获取Out Params,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24910795/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com