初学Java调用存储过程返回一行或多行结果集的实例_SQL Server_数据库_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 数据库 > SQL Server > 初学Java调用存储过程返回一行或多行结果集的实例

初学Java调用存储过程返回一行或多行结果集的实例

 2016/5/12 5:35:52    程序员俱乐部  我要评论(0)
  • 摘要:对于初学Java调用存储过程的人来说,存储过程的调用似乎还是有一点点的难度。本文我们介绍了一个Java调用存储过程返回一行或多行结果集的实例为了要得到结果集,需要使用游标进行遍历。因此要使用数据库中的包。现在要根据一个编号得到一行结果集记录。1.建立一个包:createorreplacepackageemp_pkgisTyperetcursorisrefcursor;procedurepro_read(p_idinemp.empno%type,outcursoroutretcursor)
  • 标签:Java 结果 过程 存储过程 实例

对于初学Java调用存储过程的人来说,存储过程的调用似乎还是有一点点的难度。本文我们介绍了一个Java调用存储过程返回一行或多行结果集的实例为了要得到结果集,需要使用游标进行遍历。因此要使用数据库中的包。  

现在要根据一个编号得到一行结果集记录。  

1.建立一个包:  

    class="dp-xml">
  1. create or replace package emp_pkg is    
  2. Type retcursor is ref cursor;    
  3. procedure pro_read(p_id in emp.empno%type,outcursor out retcursor);    
  4. end emp_pkg;  

2.建立一个包体。  

  1. create or replace package body emp_pkg is    
  2. procedure pro_read(p_id in emp.empno%type,outcursor out retcursor)    
  3. is     
  4. begin     
  5. open outcursor for select * from emp where empno=p_id;    
  6. end;    
  7. end emp_pkg;   

3.Java调用包:  

  1. public  void getCallableStatement4(){    
  2. CallableStatement cs=null;    
  3. Connection conn=this.getConnection();    
  4. String sql="{call emp_pkg.pro_read(?,?)}";    
  5. try {    
  6. cs=conn.prepareCall(sql);    
  7. cs.setInt(1, 7788);    
  8. cs.registerOutParameter(2, oracle.jdbc.OracleTypes.CURSOR);    
  9. cs.executeUpdate();    
  10. ResultSet rs=(ResultSet) cs.getObject(2);    
  11. while(rs.next()){    
  12. System.out.println("编号:"+rs.getInt(1)+"  姓名:"+rs.getString(2));    
  13. }    
  14. } catch (SQLException e) {    
  15. // TODO Auto-generated catch block     
  16. e.printStackTrace();    
  17. }    
  18. }   

以上就是Java调用存储过程返回一行或多行结果集的实例的全部内容,本文就介绍到这里了,希望本次的介绍能够对您有所收获!

发表评论
用户名: 匿名