欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

java调用oracle存储过程 - 奋斗的小马

更新时间: 2015-05-04 00:00:00 责任编辑: Author_N16

 

在大型数据库系统中,有两个很重要作用的功能,那就是存储过程和触发器。在数据库系统中无论是存储过程还是触发器,都是通过SQL 语句和控制流程语句的集合来完成的。相对来说,数据库系统中的触发器也是一种存储过程。存储过程在数据库中运算时自动生成各种执行方式,因此,大大提高了对其运行时的执行速度。在大型数据库系统如Oracle、SQL Server中都不仅提供了用户自定义存储过程的功能,同时也提供了许多可作为工具进行调用的系统自带存储过程。
   所谓存储过程(Stored Procedure),就是一组用于完成特定数据库功能的SQL 语句集,该SQL语句集经过编译后存储在数据库系统中。在使用时候,用户通过指定已经定义的存储过程名字并给出相应的存储过程参数来调用并执行它,从而完成一个或一系列的数据库操作。
   由于J2EE体系一般建立大型的企业级应用系统,而一般都配备大型数据库系统如Oracle或者SQL Server,在本文《JAVA的Oracle存储过程》中将介绍JAVA跟Oracle存储过程之间的相互应用跟相互间的各种调用。
   一、JAVA调用Oracle存储过程
   JAVA跟Oracle之间最常用的是JAVA调用Oracle的存储过程,以下简要说明下JAVA如何对Oracle存储过程进行调用。
   Ⅰ、不带输出参数情况
      过程名称为pro1,参数个数1个,数据类型为整形数据

Java代码
1. import  java.sql. * ;   
2. public   class  ProcedureNoArgs    
3.  {   
4. public   static   void  main(String args[])  throws  Exception   
5. {   
6.   // 加载Oracle驱动    
7.   DriverManager.registerDriver( new  oracle.jdbc.driver.OracleDriver());   
8.   // 获得Oracle数据库连接    
9.   Connection conn = DriverManager.getConnection( " jdbc:oracle:thin:@MyDbComputerNameOrIP:1521:ORCL", sUsr, sPwd " );   
10. 
11.     // 创建存储过程的对象    
12.     CallableStatement c = conn.divpareCall( " {call pro1(?)} " );   
13.       
14.     // 给Oracle存储过程的参数设置值 ,将第一个参数的值设置成188    
15.     c.setInt( 1 , 188 );   
16.       
17.     // 执行Oracle存储过程    
18.     c.execute();   
19.    conn.close();   
20.}    
21.}   
import  java.sql. * ;
public   class  ProcedureNoArgs 
  {
public   static   void  main(String args[])  throws  Exception
{
   // 加载Oracle驱动 
   DriverManager.registerDriver( new  oracle.jdbc.driver.OracleDriver());
   // 获得Oracle数据库连接 
   Connection conn = DriverManager.getConnection( " jdbc:oracle:thin:@MyDbComputerNameOrIP:1521:ORCL", sUsr, sPwd " );

     // 创建存储过程的对象 
     CallableStatement c = conn.divpareCall( " {call pro1(?)} " );
    
     // 给Oracle存储过程的参数设置值 ,将第一个参数的值设置成188 
     c.setInt( 1 , 188 );
    
     // 执行Oracle存储过程 
     c.execute();
    conn.close();


    Ⅱ、带输出参数的情况
   过程名称为pro2,参数个数2个,数据类型为整形数据,返回值为整形类型


Java代码
1.import java.sql.*;   
2.public class ProcedureWithArgs    
3.  {   
4.public static void main(String args[]) throws Exception   
5.{   
6.   //加载Oracle驱动   
7.   DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());   
8.   //获得Oracle数据库连接   
9.   Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@MyDbComputerNameOrIP:1521:ORCL", sUsr, sPwd ");   
10. 
11.    //创建Oracle存储过程的对象,调用存储过程   
12.    CallableStatement c=conn.divpareCall("{call pro2(?,?)}");   
13.       
14.    //给Oracle存储过程的参数设置值 ,将第一个参数的值设置成188   
15.    c.setInt(1,188);   
16.    //注册存储过程的第二个参数    
17.      c.registerOutParameter(2,java.sql.Types.INTEGER);  
18.    //执行Oracle存储过程   
19.    c.execute();   
20.      //得到存储过程的输出参数值并打印出来  
21.      System.out.println (c.getInt(2));     
22.    conn.close();   
23.}   
24.}  
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2015-05-04 00:00:00
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/1920377/
本文WWW.DOC100.NET DOC100.NET版权所有。