mybatis 调用存储过程 返回游标 实例
2015-06-03 09:23
465 查看
存储过程示例: 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结果集
本文转自:http://blog.csdn.net/a9529lty/article/details/24401423
相关文章推荐
- char、varchar、nchar、nvarchar的区别 作者:mekong
- python实用代码片段收集贴
- Lena与图像处理
- 2015年第十三周项目三:立体类族共有的抽象类
- 第十三周项目2:形状类族中的纯虚函数
- 稀疏矩阵三元组顺序表
- Android新控件RecyclerView浅析及上拉和下拉刷新
- HDU 超级楼梯
- 2015.6.3立体雷族的抽象类
- 程序员技术练级攻略
- 解读ASP.NET 5 & MVC6系列(17):MVC中的其他新特性
- 正则
- java内存管理机制
- 什么是JSON?
- 记一次云计算测试实验-openstack-icehouse-安装nova
- ie6并不是不支持!important
- JNI快速入门
- 第13周 项目3 立体类族共有的抽象类
- 矩形覆盖
- java实现附件预览(openoffice+swftools+flexpaper)(解决jsp读取全盘文件问题)