mybatis 调用存储过程 返回游标 实例

分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow

也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!

               
存储过程示例: create or replace procedure Fsp_Plan_CheckPrj(v_grantno  varchar2, v_deptcode number,  v_cursor   out sys_refcursor) is ………………     ---返回统计结果     open v_Cursor for       select s.plan_code,              s.plan_dept,              s.plan_amount,              s.exec_amount,              p.cname       as plan_name,              d.cname       as dept_name         from Snap_plan_checkprj s         left join v_plan p           on s.plan_code = p.plan_code         left join org_office d           on s.plan_dept = d.off_org_code        group by s.plan_code,                 s.plan_dept,                 s.plan_amount,                 s.exec_amount,                 p.cname,                 d.cname;   end; end Fsp_Plan_CheckPrj;  


mybatis:(mybatis doc api:  http://mybatis.github.io/mybatis-3/zh/sqlmap-xml.html#Result_Maps) 

java层代码

Map<String, Object> params = new HashMap<String, Object>();GrantSetting gs = this. grantSettingDao.get(grantCode);params.put( "grantNo", StringUtils. substring(gs.getGrantNo(), 0, 2));params.put( "offOrgCode", SecurityUtils.getPersonOffOrgCode());params.put("v_cursor", new ArrayList<Map<String, Object>>());//传入一个jdbc游标,用于接收返回参数this. batisDao. getSearchList("call_Fsp_Plan_CheckPrj", params);

mybatis xml配置 

<resultMap type ="java.util.HashMap" id= "cursorMap"><!--配置返回游标中别名对应的resultMap -->     <result column ="plan_code" property="plan_code" />     <result column ="plan_dept" property="plan_dept"  />     <result column ="plan_amount" property="plan_amount" />     <result column ="exec_amount" property="exec_amount"  />     <result column ="plan_name" property="plan_name" />     <result column ="dept_name" property="dept_name" /></resultMap ><select id ="call_Fsp_Plan_CheckPrj" parameterType= "map" statementType="CALLABLE" >                                                         <!--注明statementType="CALLABLE"表示调用存储过程-->     {call Fsp_Plan_CheckPrj(#{grantNo, jdbcType=VARCHAR, mode=IN},                                   #{offOrgCode, jdbcType=INTEGER, mode=IN},     #{v_cursor, mode=OUT, jdbcType=CURSOR, resultMap=cursorMap})}<!--传入传出参数要注明mode=IN/OUT 并要注明jdbcType(在网上可以查询mybatis支持哪些jdbcType类型),返回参数要注明对应的resultMap--></select >

最后,在jsp页面只需遍历 
params.put( "v_cursor", OracleTypes. CURSOR);中的v_cursor。本身就是一个可遍历的list结果集 

           

给我老师的人工智能教程打call!http://blog.csdn.net/jiangjunshow
这里写图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值