Mapper.xml 配置

<resultMap type="emp" id="empMap">

<id property="empno" column="empno"/>

<result property="ename" column="ename"/>

<result property="mgr" column="mgr"/>

<result property="job" column="job"/>

<result property="hiredate" column="hiredate"/>

<result property="sal" column="sal"/>

<result property="comm" column="comm"/>

</resultMap>

<!-- 调用存储过程返回结果集 -->

<select id="getEmps" parameterType="java.util.Map" statementType="CALLABLE">

<![CDATA[

call pro_emp(#{emps,mode=OUT,jdbcType=CURSOR,javaType=java.sql.ResultSet,resultMap=empMap})  ]]>

</select>

存储过程:

create or replace procedure pro_emp(cur_sys out sys_refcursor)

as

begin

open cur_sys for select empno, ename, job, mgr, hiredate, sal, comm, deptno

from tb_emp;

end;

IOperation接口里的方法 :

public interface IOperation {

void getEmps(Map<String, Object> param);

}

测试类:

public class Mytest {

private SqlSession sqlSession;

private IOperation mapper;

@Before

public void before(){

try {

SqlSessionFactory factory=MyBatisUtil.getSqlSessionFactory();

sqlSession=factory.openSession();

mapper=sqlSession.getMapper(IOperation.class);

System.out.println("start");

} catch (Exception e) {

System.out.println(e.getMessage());

}

}

@Test

public void getEmps(){

try {

Map<String, Object> param = new HashMap<String, Object>();

param.put("emps",OracleTypes.CURSOR);

mapper.getEmps(param);

List<Emp> depts =(List<Emp>)param.get("emps");

for (Emp emp : depts) {

System.out.println(emp.getEmpno()+" "+emp.getEname());

}

} catch (Exception e) {

System.out.println("getEmp: "+e.getMessage());

}

}

@After

public void after(){

System.out.println("close");

sqlSession.close();

}

}

结果:

start

DEBUG - Openning JDBC Connection

DEBUG - Created connection 8344960.

DEBUG - ooo Using Connection [oracle.jdbc.driver.T4CConnection@7f5580]

DEBUG - ==>  Preparing: call pro_emp(?)

DEBUG - ==> Parameters:

123 liuzan

7369 SMITH

7499 ALLEN

7521 WARD

7566 JONES

7654 MARTIN

7698 BLAKE

7782 CLARK

7788 SCOTT

7839 KING

7844 TURNER

7876 ADAMS

7900 JAMES

7902 FORD

7934 MILLER

close

myabatis oracle 调用存储过程返回list结果集的更多相关文章

  1. [转]Oracle 调用存储过程并显示结果集 Oracle.DataAccess.Client OracleDbType.RefCursor

    本文转自:http://liye9801.blog.163.com/blog/static/6019703200901244448950/ 今天学习了一个Oracle中的存储过程,一开始便被如果返回结 ...

  2. PB中用oracle的存储过程返回记录集做数据源来生成数据窗口,PB会找不到此存储过程及不能正常识别存储过程的参数问题(转)

    (转)在PB中用oracle的存储过程返回记录集做数据源来生成数据窗口 首先oracle的存储过程写法与MSSQL不一样,差别比较大. 如果是返回数据集的存储过程则需要利用oracle的包来定义游标. ...

  3. PostgreSQL 调用存储过程返回结果集

    创建返回结果集类型的存储过程: CREATE OR REPLACE FUNCTION public.f_get_member_info( id integer, productname charact ...

  4. 《Entity Framework 6 Recipes》中文翻译系列 (14) -----第三章 查询之查询中设置默认值和存储过程返回多结果集

    翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 3-6在查询中设置默认值 问题 你有这样一个用例,当查询返回null值时,给相应属性 ...

  5. oracle调用存储过程和函数返回结果集

    在程序开发中,常用到返回结果集的存储过程,这个在mysql和sql server 里比较好处理,直接返回查询结果就可以了,但在oracle里面 要 out 出去,就多了一个步骤,对于不熟悉的兄弟们还得 ...

  6. Java 调用存储过程 返回结果集

    这里使用Oracle数据库的thin连接. 下面是存储过程SQL 1 createorreplaceprocedure proc3(stid in student.stuid%type, stname ...

  7. oracle学习-存储过程返回一个值,和返回一个结果集

    一.返回一个值 --创建存储过程 create or replace procedure sp_hu_test(spcode in varchar2,spname out varchar2)is be ...

  8. 使用EntityFramework调用存储过程并获取存储过程返回的结果集

    [实习]刚入职,公司要求完成两个任务,任务要求使用存储过程和事务,其中一个问题要获取存储过程的查询结果集.经过多方查找和自己的实践,终于找到了方法.这里记录一下. 看到的这篇文章中给出的例子是查询单个 ...

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

    存储过程示例: create or replace procedure Fsp_Plan_CheckPrj(v_grantno varchar2, v_deptcode number, v_curso ...

随机推荐

  1. Junit的使用

    Junit是用于编写单元测试的框架.对于已经写好的函数,可以使用Junit生成单元测试代码. 自己的环境是:Linux Java环境是:JDK1.7 IDE:Eclipse Java EE IDE f ...

  2. 【Android群英传】学习笔记(二)

    在本篇笔记中,小编将记录关于Android Studio使用过程的小技巧 在下面文章为Android Studio 简称As ① 使用Android Studio第一次创建项目等待时间很长? 原因: ...

  3. COGS732. [网络流24题] 试题库

    «问题描述:假设一个试题库中有n道试题.每道试题都标明了所属类别.同一道题可能有多个类别属性.现要从题库中抽取m 道题组成试卷.并要求试卷包含指定类型的试题.试设计一个满足要求的组卷算法.«编程任务: ...

  4. HTTPS协议机制

    转载:http://www.ruanyifeng.com/blog/2014/02/ssl_tls.html 一.作用 不使用SSL/TLS的HTTP通信,就是不加密的通信.所有信息明文传播,带来了三 ...

  5. UP Board 妄图启动ubilinux失败

    前言 原创文章,转载引用务必注明链接. 经历了上次的上电开机失败,我们终于发现需要手动为UP板安装系统,因为没有显示器的Headless模式时,使用Linux比较方便,另外熟悉Debian系的,所以选 ...

  6. TomCat的安装与配置方法

    经过自己的研究,各种烦,所以要写个博客,帮助大家安装这个软件. 一.安装TomCat(因为大家都安装了jdk,所以就不写了) 1.下载TomCat 网址如下:http://tomcat.apache. ...

  7. apache配置 php中没有php5apache2_4.dll

    apache配置 php中没有php5apache2_4.dll 今天,在win7系统下安装Apache+PHP+MySQL时,终于体会到了版本多也不一定是好事,各种不兼容,主要是因为动态包的多少问题 ...

  8. spring jdbc获取插入记录的主键id

    在JDBC3.0规范中,当新增记录时,允许将数据库自动产生的主键值绑定到Statement或PreparedStatement中.使用Statement时,可以通过以下方法绑定主键值: int exe ...

  9. Ubuntu Server 12.04下部署glusterfs

    1.安装环境 Linux:Ubuntuserver 12.04.1 LTS 64bit 2台 分布式文件系统:Gluster 测试环境:一台作文件服务器端(192.168.56.133),一台作客户端 ...

  10. Excel——使用OFFSET、MATCH、COUNTA实现二级菜单

    如图所示,接下来提供两种办法实现: 1.将A.B.C.D定义为名称NAME. 2.设置一级菜单单元格数据有效性为NAME. 3.设置二级菜单格数据有效为: =OFFSET($A$1,MATCH($A6 ...