对于初学Java调用存储过程的人来说,存储过程的调用似乎还是有一点点的难度。本文我们介绍了一个Java调用存储过程返回一行或多行结果集的实例为了要得到结果集,需要使用游标进行遍历。因此要使用数据库中的包。
现在要根据一个编号得到一行结果集记录。
1.建立一个包:
create or replace package emp_pkg is Type retcursor is ref cursor; procedure pro_read(p_id in emp.empno%type,outcursor out retcursor); end emp_pkg;
2.建立一个包体。
create or replace package body emp_pkg is procedure pro_read(p_id in emp.empno%type,outcursor out retcursor) is begin open outcursor for select * from emp where empno=p_id; end; end emp_pkg;
3.Java调用包:
public void getCallableStatement4(){ CallableStatement cs=null; Connection conn=this.getConnection(); String sql="{call emp_pkg.pro_read( , )}"; try { cs=conn.prepareCall(sql); cs.setInt(1, 7788); cs.registerOutParameter(2, oracle.jdbc.OracleTypes.CURSOR); cs.executeUpdate(); ResultSet rs=(ResultSet) cs.getObject(2); while(rs.next()){ System.out.println("编号:"+rs.getInt(1)+" 姓名:"+rs.getString(2)); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } }
以上就是Java调用存储过程返回一行或多行结果集的实例的全部内容,本文就介绍到这里了,希望本次的介绍能够对您有所收获!