JAVA跟Oracle之間最常用的是JAVA調(diào)用Oracle的存儲過程,以下簡要說明下JAVA如何對Oracle存儲過程進行調(diào)用。
Ⅰ、不帶輸出參數(shù)情況
過程名稱為pro1,參數(shù)個數(shù)1個,數(shù)據(jù)類型為整形數(shù)據(jù)
import java.sql. * ;
public class ProcedureNoArgs
{
public static void main(String args[]) throws Exception
{
// 加載Oracle驅(qū)動
DriverManager.registerDriver( new oracle.jdbc.driver.OracleDriver());
// 獲得Oracle數(shù)據(jù)庫連接
Connection conn = DriverManager.getConnection( " jdbc:oracle:thin:@MyDbComputerNameOrIP:1521:ORCL", sUsr, sPwd " );
// 創(chuàng)建存儲過程的對象
CallableStatement c = conn.divpareCall( " {call pro1(?)} " );
// 給Oracle存儲過程的參數(shù)設(shè)置值 ,將第一個參數(shù)的值設(shè)置成188
c.setInt( 1 , 188 );
// 執(zhí)行Oracle存儲過程
c.execute();
conn.close();
}
}
Ⅱ、帶輸出參數(shù)的情況
過程名稱為pro2,參數(shù)個數(shù)2個,數(shù)據(jù)類型為整形數(shù)據(jù),返回值為整形類型
import java.sql.*;
public class ProcedureWithArgs
{
public static void main(String args[]) throws Exception
{
//加載Oracle驅(qū)動
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
//獲得Oracle數(shù)據(jù)庫連接
Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@MyDbComputerNameOrIP:1521:ORCL", sUsr, sPwd ");
//創(chuàng)建Oracle存儲過程的對象,調(diào)用存儲過程
CallableStatement c=conn.divpareCall("{call pro2(?,?)}");
//給Oracle存儲過程的參數(shù)設(shè)置值 ,將第一個參數(shù)的值設(shè)置成188
c.setInt(1,188);
//注冊存儲過程的第二個參數(shù)
c.registerOutParameter(2,java.sql.Types.INTEGER);
//執(zhí)行Oracle存儲過程
c.execute();
//得到存儲過程的輸出參數(shù)值并打印出來
System.out.println (c.getInt(2));
conn.close();
}
}
二,使用JAVA創(chuàng)建Oracle存儲過程
先看下如何使用JAVA來編寫Oracle存儲過程,我們在Oracle的sql plus中編寫語句。
Ⅰ、啟動SQL PLUS
Ⅱ、編寫JAVA類,定義JAVA類別名,本存儲過程為簡單地輸出傳入?yún)?shù)的平方值。
create or replace and compile java source named "PF" as
/**
*通過JAVA類來 創(chuàng)建Oracle存儲過程
*
**/
package org.oraclejava.pro;
public class javaCreatePro
{
public static String test( int num)
{
return num+ "的平方為: " +num*num;
}
}
Ⅲ、將JAVA類中的方法test創(chuàng)建為一個Oracle函數(shù)方法
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';
Ⅳ、在控制臺直接調(diào)用創(chuàng)建的Oracle函數(shù)
select PF_FUN(10) from dual;
Ⅴ、輸出結(jié)果
10的平方為:100
以上即是在Oracle中的SQL PLUS中使用JAVA程序來產(chǎn)生Oracle存儲過程的演示例子,演示了其基本語法的實現(xiàn)跟簡單的功能實現(xiàn),可以看出在JAVA跟Oracle之間存在很多有趣的用法,因為oracle中有java虛擬機,使得Oracle變得更加有趣更加豐富多彩