对于初学Java调用存储过程的人来说,存储过程的调用似乎还是有一点点的难度。本文我们介绍了一个Java调用存储过程返回一行或多行结果集的实例为了要得到结果集,需要使用游标进行遍历。因此要使用数据库中的包。
现在要根据一个编号得到一行结果集记录。
1.建立一个包:
class="dp-xml">
- 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调用存储过程返回一行或多行结果集的实例的全部内容,本文就介绍到这里了,希望本次的介绍能够对您有所收获!