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. Banner中利用Jquery隐藏显示下方DIV块

    实现方式1: <!DOCTYPE html><html><head>    <meta charset="UTF-8">    &l ...

  2. POJ 3422 Kaka's Matrix Travels

    Kaka's Matrix Travels Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 9567   Accepted:  ...

  3. javadoc

    Oracle官方javadoc说明 Generates HTML pages of API documentation from Java source files. http://docs.orac ...

  4. Markdown编辑器测试

    Markdown 我是二级标题 public void add(int a,int b){ } 我是引用 我是分割线 - - - 1.x小项目1 2.项目2 无标题 无标题 家畜 ''' 代码块 '' ...

  5. Table 表单

    <style> table th { white-space: nowrap; } .chk { white-space: nowrap; } </style> <tab ...

  6. 室内定位系列(一)——WiFi位置指纹(译)

    原文:<Advanced Location-Based Technologies and Services>--chapter 2 WiFi Location Fingerprint 作者 ...

  7. XML文件(1)--使用DOM示例

    其他依赖字段/方法 // 书籍列表 private List<Book> bookList = new LinkedList<Book>(); /** * 根据xml文件,得到 ...

  8. 请注意,再次记住, centos7,fedora 24中 没有iptables服务, 而使用的firewalld, 也可以安装 iptables-services程序来实现

    原来写了一篇文章的, 忘了: http://www.cnblogs.com/bkylee/p/5837481.html 可以用 firewall-cmd 这个命令来管理 防火墙...

  9. sublime text 3 3083 注册码

    亲试,可用! —– BEGIN LICENSE —– Andrew Weber Single User License EA7E-855605 813A03DD 5E4AD9E6 6C0EEB94 B ...

  10. Web压力测试系统-nGrinder

    nGrinder是一个免费的.开放源代码的Web性能测试工具.它本身是JAVA WEB应用程序,在Tomcat服务器中运行. 它由一个controller端和一个或多个Agent端组成.nGrinde ...