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

  • 相关阅读:
    《网络对抗技术》Exp6 MSF应用基础
    用Onenote写博客日志 
    C语言文法
    0909
    使用jQuery解决溢出文本省略
    几种流行的AJAX框架jQuery,Mootools,Dojo,Ext JS的对比
    jQuery实现动态加载大尺寸图片
    常用jQuery插件推荐
    使用不带单位的lineheight
    JavaScript懒加载技术 lazyload
  • 原文地址:https://www.cnblogs.com/feixian/p/6016455.html
Copyright © 2011-2022 走看看