`
hy_agui
  • 浏览: 1025 次
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论
收藏列表
标题 标签 来源
一个Java调用存储过程返回一行或多行结果集的实例为了要得到结果集,需要使用游标进行遍历 http://database.51cto.com/art/201108/286380.htm
对于初学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调用存储过程返回一行或多行结果集的实例的全部内容,本文就介绍到这里了,希望本次的介绍能够对您有所收获!
Global site tag (gtag.js) - Google Analytics