对于初学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调用存储过程返回一行或多行结果集的实例的全部内容,本文就介绍到这里了,希望本次的介绍能够对您有所收获!
【编辑推荐】