Oracle中使用Java存储过程

从Oracle8i开始,就有了对Java存储过程的支持。

OracleJVM能够和操作系统紧密地结合在一起,快速的进行数据操作及管理。

 

Java存储过程与一般的JDBC程序有所不同的是:
1.有安全限制,毕竟是在oracle内部运行的,不允许访问操作系统的资源,如文件。
2.获取数据库联接方式,connection = new OracleDriver().defaultConnection();
3.System.out,System.err,System.in等输入输出有所不同。可以利用某些命令重定向。 

 

我这里只是简单的Oracle Java存储过程的应用,毕竟Java在语言上的优势是SQL所不能媲美的。

 

首先配置数据库让之能够使用Java打印数据到控制台:

SQL> set serveroutput on size 2000
SQL> call dbms_java.set_output(2000);

 

在PL/SQL Developer中建立一个Java Source:

create or replace and compile java source named TestJava1 as   
public class TestJava1   
{   
  public static void test()   
  {   
   System.out.println("Hello");   
  }   
}  

 

在编写一个Create procedure声明存储过程:

01.create or replace procedure testJava1 as language java name 'TestJava1.test()';  

 

最后,调用存储过程:

 exec testjava1();

 

这是最简单的JAVA程序。

下面是我用到的一部分功能演示:(读取本地数据库表格,使用oracle.jdbc.*)

create or replace and compile java source named testjava1 as
import java.sql.*;
import oracle.jdbc.*;

public class TestJava1
{
  public static void test()
  {
   System.out.println("Hello");
   
       try{
         Connection conn =
            DriverManager.getConnection("jdbc:default:connection:");

         String sql =
            "select * from itmis_pri_serv_tbl where year=2013 ";
         PreparedStatement pstmt = conn.prepareStatement(sql);
         
         ResultSet result = pstmt.executeQuery();
         
         while(result.next()){
          System.out.println(result.getString(1));
					System.out.println(result.getString(2));
          System.out.println(result.getString(3));
					}
         pstmt.close();
         }
      catch(SQLException e) {
         System.err.println("ERROR! Adding Salgrade: " 
           + e.getMessage());
         }
   }
  
  }

 

你可能感兴趣的:(Oracle,SQL,Java)