• 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

  • 相关阅读:
    SpringCloud笔记(一)服务注册与发现
    个人备忘录
    ActiveMQ 消息持久化到Mysql数据库
    染色 [组合数 容斥]
    各种图床
    NOIP2012 疫情控制
    网格计数
    找钱 [多重背包 计数]
    序列[势能线段树]
    牛客挑战赛33 B-鸽天的放鸽序列
  • 原文地址:https://www.cnblogs.com/feixian/p/6016455.html
Copyright © 2020-2023  润新知