Heim  >  Artikel  >  Datenbank  >  Java调用Oracle存储过程教程

Java调用Oracle存储过程教程

WBOY
WBOYOriginal
2016-06-07 17:06:08916Durchsuche

Java跟Oracle之间最常用的是Java调用Oracle的存储过程,以下简要说明下Java如何对Oracle存储过程进行调用。

Java跟Oracle之间最常用的是Java调用Oracle的存储过程,以下简要说明下Java如何对Oracle存储过程进行调用。

Ⅰ、Java调用Oracle存储过程【不带输出参数】

过程名称为pro1,参数个数1个,数据类型为整形数据。

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(); 
  } 
}

Ⅱ、JAVA调用Oracle存储过程【带输出参数的情况】
过程名称为pro2,参数个数2个,数据类型为整形数据,返回值为整形类型

import java.sql.*; 
 
public class ProcedureWithArgs { 
  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); 
    // 创建Oracle存储过程的对象,调用存储过程 
    CallableStatement c = conn.divpareCall("{call pro2(?,?)}"); 
    // 给Oracle存储过程的参数设置值 ,将第一个参数的值设置成188 
    c.setInt(1, 188); 
    // 注册存储过程的第二个参数 
    c.registerOutParameter(2, java.sql.Types.INTEGER); 
    // 执行Oracle存储过程 
    c.execute(); 
    // 得到存储过程的输出参数值并打印出来 
    System.out.println(c.getInt(2)); 
    conn.close(); 
  } 
}

   以上即是在JAVA中调用Oracle存储过程的最简单的实例,接下来将介绍有关JAVA跟Oracle存储过程的其他方面内容。


二、使用JAVA创建Oracle存储过程
先看下如何使用JAVA来编写Oracle存储过程,我们在Oracle的sql plus中编写语句。
Ⅰ、启动SQL PLUS
Ⅱ、编写JAVA类,定义JAVA类别名,本存储过程为简单地输出传入参数的平方值。

create or replace and compile java source named  "PF"  as
/** 
* 通过JAVA类来 创建Oracle存储过程 
*/ 
package org.oraclejava.pro; 
 
public class javaCreatePro { 
  public static String test(int num) { 
    return num + "的平方为: " + num * num; 
  } 
}

Ⅲ、将JAVA类中的方法test创建为一个Oracle函数方法

create or replace function PF_FUN(name integer) return varchar2 as language java name 'org.oraclejava.pro.javaCreatePro.test(java.lang.Integer) return java.lang.String'; 


Ⅳ、在控制台直接调用创建的Oracle函数

  select PF_FUN(10) from dual;

Ⅴ、输出结果
10的平方为:100

linux

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn