使用MyBatis操作存储过程后,获得存储过程的输出参数,也就是sql语句查询结果

3 篇文章 0 订阅
1 篇文章 0 订阅

使用PL/SQL操作Oracle数据库。

存储过程的书写:

连接的实例上右键-->New-->Program Window-->Procedure。然后输入储存过程名称就可以编写存储过程。

create or replace procedure CALYONCHECK(
                                  i_date in varchar2,
                                  o_cursor out sys_refcursor--系统的游标类型,查询的结果存放这
                                       ) is
begin 
open o_cursor for ---将查询结果赋值给输出参数
select 0 as c_type,('基金账号:'||t.c_fundacco) as message
from tconfirm t
left join terrormess e
     on t.c_cause = e.c_cause
where t.c_status<>'0000'
      and t.d_cdate = i_date;
end CALYONCHECK;

Mybatis XML中核心书写:

<resultMap id="TEST" type="java.util.Map">
    <result column="c_type" property="c_type" jdbcType="VARCHAR" />
    <result column="c_message" property="c_message" jdbcType="VARCHAR" />
</resultMap>

<select id='calyonCheckData' statementType="CALLABLE" parameterType="java.util.HashMap">
{call CALYONCHECK(#{i_date,mode=IN,jdbcType=VARCHAR},
                  #{o_cursor,mode=OUT,jdbcType=CURSOR,resultMap=TEST}
                    )}
</select>

相关java代码:

mapper接口中对应的方法:

public void calyonCheckData(Map<String,Object> dataMap);

service中的方法

public xxx xxx(....String date...){

         Map<String,Object> map = new HashMap<String,Object>();
         map.put("i_date","20150511");
         map.put("o_cursor",new ArrayList<Map<String,String>>());
         xxxMapper.calyonCheckData(map);
         List<Map<String,Object>>  list = (List<Map<String,Object>>)  
        map.get("o_cursor");//list为储存过程结果集合

         ...........

}

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值