myabatis oracle 调用存储过程返回list结果集
視頻課:https://edu.csdn.net/course/play/7940
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结果集的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: oracle调用存储过程和函数返回结果集
- 下一篇: oracle基本结构