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

  • 相关阅读:
    OSError: cannot open resource(pillow错误处理)
    boost 库中文教程
    博客案例
    requests模块
    浅析Python中的struct模块
    面试基础知识点总结
    ant安装、环境变量配置及验证
    TestNG学习-001-基础理论知识
    selenium 常见面试题以及答案
    HTML5
  • 原文地址:https://www.cnblogs.com/feixian/p/6016455.html
Copyright © 2011-2022 走看看