首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >调用存储过程并取出Params的MyBatis注释

调用存储过程并取出Params的MyBatis注释
EN

Stack Overflow用户
提问于 2014-07-23 12:43:22
回答 1查看 6.7K关注 0票数 2

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

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

代码语言:javascript
复制
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地图接口方法,

代码语言:javascript
复制
@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对象包含在存储过程调用语句中作为输入传递的参数。

当我执行这个的时候,它会被挂在这里,

代码语言:javascript
复制
main Slf4jImpl 
==>  Preparing: { CALL C2C.GET_DATA(?,?,?,?)} 

main Slf4jImpl 
==> Parameters: 60(Integer)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-07-24 08:59:47

令人惊讶的是,如果我使用@Insert注释,它将按预期的方式工作。调用存储过程时的一些奇怪行为。如果有其他人有好的解决办法,请告诉我。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24910795

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档