zoukankan      html  css  js  c++  java
  • myabatis oracle 调用存储过程返回list结果集

    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

  • 相关阅读:
    PHP 包含文件路径问题
    PHP显示今天、今月、上月、今年的起点/终点时间戳
    PHP Web基础教程
    php如何生成随机密码的几种方法
    You don't have permission to access /~whpc on this server.
    linux 网络 PING IP可以通,ping域名ping不通
    CPU : 二级缓存容量
    简单建立个人WEB网站
    MKL程序编译与连接:Lapack篇
    ldd命令原理与使用
  • 原文地址:https://www.cnblogs.com/feixian/p/6016455.html
Copyright © 2011-2022 走看看