Oracle8i中使用Java語言來開發存儲過程

 

本篇文章來源與時代朝陽數據庫(原曉通數據庫)培訓部Oracle 資料庫。

Oracle8i之前,開發人員只能使用PL/SQL來開發存儲過程。而在Oracle8i之中,不僅可以使用原有的PL/SQL開發存儲過程,而且也可以使用Java語言來開發存儲過程。本篇文章將簡單介紹關於這方面的知識,包括以下內容:

 

l         存儲過程簡介;

l         Java存儲過程

l         Java存儲過程的開發步驟

l         使用Java開發過程;

l         使用Java開發函數;

l         使用Java開發包;

l         使用Java開發觸發器;

l         使用Java開發對象方法;

l         使用JDeveloper開發JSP

存儲過程簡介

存儲過程是存儲在數據庫中的一段存儲程序。當創建存儲過程時,系統會對其進行編譯,並將執行代碼存儲到數據庫中。

 

1.         設計存儲過程的方針

 

l         在定義存儲過程時,要使用其完成單一、相對集中的任務。

l         在定義存儲過程時,不要定義已經由其它特徵所提供功能的過程。例如,不要定義強制數據完整性的過程(使用完整性約束)。

 

2.         存儲過程的優點

1)        安全性

 

當創建了存儲過程之後,可以將執行該過程的權限授予其它用戶,從而使得他可以執行特定的數據庫操作,而不能訪問其它模式對象(例如表)。例如,你可以將執行過程(更新表)的權限授予其它用戶,但不授予它們直接訪問該表的權限。

 

2)        性能

 

l         存儲過程只被發送到數據庫一次,相對於SQL語句或PL/SQL塊而言,其網絡通信量更小。

l         當調用存儲過程時,數據庫會直接運行該存儲過程,無需進行編譯。相對於SQL語句或PL/SQL塊而言,其執行速度更快。

 

3)        內存分配

 

存儲過程充分利用了Oracle共享內存的能力。在將存儲過程裝載到內存中後,多個用戶可以同時調用該存儲過程,從而降低了應用對Oracle的實際內存需求。

 

4)        生產力

 

存儲過程提高了開發生產力。通過將公共集合編寫爲存儲過程,避免了冗餘代碼,從而提高了開發生產力。例如,我們可以編寫用於插入、更新、刪除AUTHS表的過程,此後應用可以直接調用這些過程,而無需重寫SQL語句。當管理數據的方法發生變化時,只需要修改過程,而不需要對應用進行任何修改。

Java存儲過程

在以前的Oracle版本中,開發存儲過程是通過PL/SQL來完成的。而在Oracle8i版本中,我們不僅可以使用PL/SQL開發存儲過程,而且還可以使用Java語言來開發存儲過程。

 

1.         PL/SQLJava存儲過程比較

 

PL/SQL相比,使用Java語言開發存儲過程有以下優點:

 

l         Java語言具有更強大的運算能力,提供了更多的運算方法。當要完成進行復雜運算的存儲過程時,使用JSP將是你最好的選擇。

l         PL/SQL只能用於Oracle數據庫,而Java語言可以應用於更多的數據庫系統(如SybaseDB2Informix等等),所以Java存儲過程將具有更好的兼容性、可移植性。

 

2.         JSP分類

Java存儲過程包括過程、函數、觸發器以及對象方法四種類型。

 

3.         調用JSP的四種方法

 

l         CALL語法;

l         DML語句;

l         PL/SQL塊、子程序、包;

l         由觸發器隱含調用。

Java存儲過程的開發步驟

1.         編寫Java源代碼

 

當開發Java存儲過程時,首先應該編寫Java源代碼。如下圖所示:

注意事項:

 

l          當以public方式聲明類時,類名必須與其文件名完全一致。

l          只有public static方法可以作爲Java存儲過程。

 

2.         裝載Java代碼及類到Oracle8i數據庫中

在編寫了Java源代碼之後,接下來應該將Java代碼及相應的Java類裝載到Oracle8i數據庫中。如下圖所示:

裝載Java代碼及類到RDBMS有以下兩種方法:

 

l         使用loadjava工具,通過該工具可以快速裝載Java源代碼(.java)、Java二進制代碼(.class)以及Java打包文件(.jar)。

l         使用CREATE JavaALTER Java裝載Java代碼。

 

其中,前一種方法相對簡單,並且我們推薦你使用這種方法。

 

3.         生成調用說明

 

在裝載了Java類之後,接下來應該生成對public static方法的調用說明,最終完成Java存儲過程的開發工作。如下圖所示:

 

完成上述步驟之後,就完成了Java存儲過程的開發工作,然後就可以調用並執行該Java存儲過程了。

使用Java開發過程

過程用於執行某種操作。需要注意的是,過程所對應的Java方法返回值必須爲空(void)。本節以創建用於插入、修改和刪除AUTHS表的JSP爲例,說明使用Java開發過程的方法。如下圖所示:

下面講述完成上述任務的方法及過程:

 

1.         編寫Java源代碼

 

程序清單如下(manipulate_auths.java):

 

/* 導入Java */

import java.sql.*;

import java.io.*;

import oracle.jdbc.driver.*;

 

/* 主類 */

public class manipulate_auths {

 

  public static void insert_auths

    (String code,String name,int sex,String birthdate,String entry_date_time)

  throws SQLException {

 

    /* 建立到數據庫的缺省連接 */

    Connection conn = new OracleDriver().defaultConnection();

    /* 構造動態SQL語句 */

String sql = "INSERT INTO auths

 (author_code,name,sex,birthdate,entry_date_time) " +

                 "VALUES (?,?,?,?,?)";

    /* 使用try ... catch語句抓取並拋出例外 */

    try {

      /* 準備動態SQL語句 */

      PreparedStatement pstmt = conn.prepareStatement(sql);

      /* 設置動態SQL參數值 */

      pstmt.setString(1, code);

      pstmt.setString(2, name);

      pstmt.setInt(3, sex);

      pstmt.setString(4, birthdate);

      pstmt.setString(5, entry_date_time);

      /* 執行動態SQL語句 */

      pstmt.executeUpdate();

      /* 關閉動態SQL語句 */

      pstmt.close();

    } catch (SQLException e) { }

  }

 

  public static void delete_auths (String code)

  throws SQLException {

 

    /* 建立到數據庫的缺省連接 */

    Connection conn = new OracleDriver().defaultConnection();

    /* 構造動態SQL語句 */

    String sql = "DELETE FROM auths  WHERE author_code = ?";

    /* 使用try ... catch語句抓取並拋出例外 */

    try {

      /* 準備動態SQL語句 */

      PreparedStatement pstmt = conn.prepareStatement(sql);

      /* 設置動態SQL參數值 */

      pstmt.setString(1, code);

      /* 執行動態SQL語句 */

      pstmt.executeUpdate();

      /* 關閉動態SQL語句 */

      pstmt.close();

    } catch (SQLException e) { }

  }

 

  public static void modify_salary (String code,float salary)

  throws SQLException {

 

    /* 建立到數據庫的缺省連接 */

    Connection conn = new OracleDriver().defaultConnection();

    /* 構造動態SQL語句 */

    String sql = "UPDATE auths SET salary = ? WHERE author_code = ?";

    /* 使用try ... catch語句抓取並拋出例外 */

    try {

      /* 準備動態SQL語句 */

      PreparedStatement pstmt = conn.prepareStatement(sql);

      /* 設置動態SQL參數值 */

      pstmt.setFloat(1, salary);

      pstmt.setString(2, code);

      /* 執行動態SQL語句 */

      pstmt.executeUpdate();

      /* 關閉動態SQL語句 */

      pstmt.close();

    } catch (SQLException e) { }

  }

}

2.         裝載Java代碼及類到Oracle8i數據庫中

 

在編寫了Java源代碼之後,就可以將Java對象裝載到Oracle8i數據庫中了。下面是完成這項任務的方法:

 

 

3.         發行Java,生成調用說明

 

在裝載了Java類後,就可以發行該Java類,並生成調用其方法的過程說明了。下面是完成該項任務的方法:

 





 

4.         調用JSP

在生成了調用Java方法的過程說明之後,我們就可以調用JSP了。例如:

 



使用Java開發函數

函數用於返回特定數據。本節將通過創建用於返回作者的文章標題,以及某種類型的文章個數爲例,說明使用Java開發函數的方法。如下圖所示:

 

 

下面講述完成上述任務的方法和過程。

 

1.         編寫Java源代碼

 

程序清單如下(query_article.java):

 

/* 導入Java */

import java.sql.*;

import java.io.*;

import oracle.jdbc.driver.*;

 

/* 主類 */

public class query_article {

 

  public static String auths_article(String code)

  throws SQLException {

 

    /* 建立到數據庫的缺省連接 */

    Connection conn = new OracleDriver().defaultConnection();

    /* 構造動態SQL語句 */

    String sql1 = "SELECT name FROM auths WHERE author_code=?";

    String sql2 = "SELECT title FROM article WHERE author_code=?";

    /* 聲明並初始化auths_article變量 */

    String auths_article = new String();

    /* 使用try ... catch語句抓取並拋出例外 */

    try {

      /* 準備動態SQL語句 */

      PreparedStatement pstmt = conn.prepareStatement(sql1);

      /* 設置動態SQL參數值 */

      pstmt.setString(1, code);

      /* 執行查詢,並將結果保存到結果集中 */

      ResultSet rset = pstmt.executeQuery();

      /* 循環獲取並處理結果集數據 */

      while(rset.next())

        auths_article =auths_article + rset.getString(1);

      /* 關閉結果集 */

      rset.close();

      /* 關閉動態SQL語句 */

      pstmt.close();

    } catch (SQLException e) {}

    auths_article = auths_article + "所編寫文章的標題如下:/n";

 

    try {

      /* 準備動態SQL語句 */

      PreparedStatement pstmt = conn.prepareStatement(sql2);

      /* 設置動態SQL參數值 */

      pstmt.setString(1, code);

      /* 執行查詢,並將結果保存到結果集中 */

      ResultSet rset = pstmt.executeQuery();

      /* 循環獲取並處理結果集數據 */

      while(rset.next()) {

        auths_article =auths_article + "    " + rset.getString(1) + "/n";

      }

      /* 關閉結果集 */

      rset.close();

      /* 關閉動態SQL語句 */

      pstmt.close();

    } catch (SQLException e) {}

    return auths_article;

  }

 

  public static String query_type_article_number(String code)

  throws SQLException {

 

    /* 建立到數據庫的缺省連接 */

    Connection conn = new OracleDriver().defaultConnection();

    /* 構造動態SQL語句 */

    String sql = "SELECT count(*) FROM article WHERE article_code IN "

       + "(SELECT article_code FROM article_type WHERE type_code=?)";

    String article_number = new String("類型爲" + code + "的文章共有 ");

    /* 使用try ... catch語句抓取並拋出例外 */

    try {

      /* 準備動態SQL語句 */

      PreparedStatement pstmt = conn.prepareStatement(sql);

      /* 設置動態SQL參數值 */

      pstmt.setString(1, code);

      /* 執行查詢,並將結果保存到結果集中 */

      ResultSet rset = pstmt.executeQuery();

      /* 循環獲取並處理結果集數據 */

      while(rset.next())

        article_number = article_number + rset.getString(1) + "";

      /* 關閉結果集 */

      rset.close();

      /* 關閉動態SQL語句 */

      pstmt.close();

    } catch (SQLException e) {}

    return article_number;

  }

}

 

2.         裝載Java代碼及類到Oracle8i數據庫中

 

在編寫了Java源代碼之後,就可以將Java對象裝載到Oracle8i數據庫中了。下面是完成這項任務的方法:


 

3.         發行Java,生成調用說明

 

在裝載了Java類後,就可以發行該Java類,並生成調用其方法的函數說明了。下面是完成該項任務的方法:

 



 

4.         調用JSP

 

在生成了調用Java方法的函數說明之後,就可以調用這些函數了。例如:

 


使用Java開發

Java類用於封裝Java方法,與此類似,包用於封裝過程和函數等。本節將通過創建用於管理表subject的包爲例,說明使用Java開發包的方法。如下圖所示:

 


 

下面講述完成上述任務的方法和過程。

 

1.         編寫Java源代碼

 

程序清單如下(manage_subject.java):

 

/* 導入Java */

import java.sql.*;

import java.io.*;

import oracle.jdbc.driver.*;

 

/* 主類 */

public class manage_subject {

 

  public static String query_subject()

  throws SQLException {

    /* 建立到數據庫的缺省連接 */

    Connection conn = new OracleDriver().defaultConnection();

    /* 構造SQL語句 */

    String sql = "SELECT * FROM subject";

    /* 聲明並初始化subject變量 */

    String subject = new String();

    /* 使用try ... catch語句抓取並拋出例外 */

    try {

      /* 創建Statement對象 */

      Statement stmt = conn.createStatement();

      /* 執行SQL語句,並將查詢結果賦給結果集 */

      ResultSet rset = stmt.executeQuery(sql);

      /* 循環獲取並處理結果集變量 */

      while(rset.next())

        subject = subject + rset.getString(1) + "/n";

      /* 關閉結果集 */

      rset.close();

    } catch (SQLException e) {}

    return subject;

  }

 

  public static void insert_subject(String subject)

  throws SQLException {

 

    /* 建立到數據庫的缺省連接 */

    Connection conn = new OracleDriver().defaultConnection();

    /* 構造動態SQL語句 */

    String sql = "INSERT INTO subject VALUES(?)";

    /* 使用try ... catch語句抓取並拋出例外 */

    try {

      /* 準備動態SQL語句 */

      PreparedStatement pstmt = conn.prepareStatement(sql);

      /* 設置動態SQL參數值 */

      pstmt.setString(1, subject);

      /* 執行動態SQL語句 */

      pstmt.executeUpdate();

      /* 關閉動態SQL語句 */

      pstmt.close();

    } catch (SQLException e) {}

  }

 

  public static void delete_subject(String subject)

  throws SQLException {

 

    /* 建立到數據庫的缺省連接 */

    Connection conn = new OracleDriver().defaultConnection();

    /* 構造動態SQL語句 */

    String sql = "DELETE FROM subject WHERE subject=?";

    /* 使用try ... catch語句抓取並拋出例外 */

    try {

      /* 準備動態SQL語句 */

      PreparedStatement pstmt = conn.prepareStatement(sql);

      /* 設置動態SQL參數值 */

      pstmt.setString(1, subject);

      /* 執行動態SQL語句 */

      pstmt.executeUpdate();

      /* 關閉動態SQL語句 */

      pstmt.close();

    } catch (SQLException e) {}

  }

 

  public static void update_subject(String old_subject,String new_subject)

  throws SQLException {

 

    /* 建立到數據庫的缺省連接 */

    Connection conn = new OracleDriver().defaultConnection();

    /* 構造動態SQL語句 */

    String sql = "UPDATE subject SET subject=? WHERE subject=?";

    /* 使用try ... catch語句抓取並拋出例外 */

    try {

      /* 準備動態SQL語句 */

      PreparedStatement pstmt = conn.prepareStatement(sql);

      /* 設置動態SQL參數值 */

      pstmt.setString(1, new_subject);

      pstmt.setString(2, old_subject);

      /* 執行動態SQL語句 */

      pstmt.executeUpdate();

      /* 關閉動態SQL語句 */

      pstmt.close();

    } catch (SQLException e) {}

  }

}

 

2.         裝載Java代碼及類到Oracle8i數據庫中

 

在編寫了Java源代碼之後,就可以將Java對象裝載到Oracle8i數據庫中了。下面是完成這項任務的方法:

 



 

3.         發行Java,生成調用說明

 

在裝載了Java類後,就可以發行該Java類,並生成調用其方法的包了。下面是完成該項任務的方法:




4.         調用JSP

 

在生成了調用Java方法的包後,就可以調用這些方法所對應的函數和過程了。例如:

 






使用Java開發觸發器

觸發器是一段存儲程序,當執行特定修改操作時,會觸發它,並執行其中的存儲程序。下面以記載表AUTHS作者工資更新情況的觸發器爲例,說明使用Java開發觸發器的方法。如下圖所示:

 

 

下面講述完成上述任務的方法和過程。

 

1.         編寫Java源代碼

 

程序清單如下(trigger.java):

 

/* 導入Java */

import java.sql.*;

import java.io.*;

import oracle.jdbc.driver.*;

/* 主類 */

public class trigger {

 

  public static void log_salary(String name,float old_sal,float new_sal)

  throws SQLException {

 

    /* 建立到數據庫的缺省連接 */

    Connection conn = new OracleDriver().defaultConnection();

    String sql = "INSERT INTO salary_audit VALUES(?,?,?)";

 

    /* 使用try ... catch語句抓取並拋出例外 */

    try {

      PreparedStatement pstmt = conn.prepareStatement(sql);

      pstmt.setString(1, name);

      pstmt.setFloat(2, old_sal);

      pstmt.setFloat(3, new_sal);

      pstmt.executeUpdate();

      pstmt.close();

    } catch (SQLException e) {}

  }

}

 

2.         裝載Java代碼及類到Oracle8i數據庫中

 

在編寫了Java源代碼之後,就可以將Java對象裝載到Oracle8i數據庫中了。下面是完成這項任務的方法:

 



3.         發行Java,生成調用說明

 

在裝載了Java類後,就可以發行該Java類,並生成調用其方法的過程說明及觸發器了。下面是完成該項任務的方法:





 

4.         調用JSP

 

在創建了觸發器之後,當修改作者工資時會自動調用其中的存儲程序。例如:

 



使用Java開發對象方法

對象類型是一種用戶自定義的數據結構,它可以將數據類型、函數以及過程封裝到該數據結構中。對象方法是指對象類型中的函數和過程,本節將以獲取和增加對象工資信息爲例,說明使用Java開發對象方法的方法。如下圖所示:


 

下面講述完成上述任務的方法及過程:

 

1.         編寫Java源代碼

 

程序清單如下(object_type.java):

 

/* 導入Java */

import java.sql.*;

import java.io.*;

import oracle.sql.*;

import oracle.jdbc.driver.*;

import oracle.oracore.*;

import oracle.jdbc2.*;

import java.math.*;

 

/* 主類,實現了SQLData接口 */

public class object_type implements SQLData {

 

  /* 聲明private變量,它們對應於對象類型的屬性 */

  private String code;

  private String name;

  private BigDecimal sex;

  private BigDecimal salary;

 

  /* 方法get_name():對象類型的方法,用於獲取對象姓名 */

  public String get_name() {

    return name;

  }

 

  /* 方法get_salary():對象類型的方法,用於獲取對象工資 */

  public BigDecimal get_salary() {

    BigDecimal sal = salary;

    return sal;

  }

  /* 方法raise_salary():對象類型的方法,用於增加對象工資 */

  public void raise_salary(BigDecimal raise) {

    salary = salary.add(raise);

  }

 

  /* 以下程序段實現了接口SQLData */

  String sql_type;

  public String getSQLTypeName() throws SQLException {

    return sql_type;

  }

 

  public void readSQL(SQLInput stream, String typeName) throws SQLException {

    sql_type = typeName;

    code = stream.readString();

    name = stream.readString();

    sex = stream.readBigDecimal();

    salary = stream.readBigDecimal();

  }

 

  public void writeSQL(SQLOutput stream) throws SQLException {

    stream.writeString(code);

    stream.writeString(name);

    stream.writeBigDecimal(sex);

    stream.writeBigDecimal(salary);

  }

}

 

2.         裝載Java代碼及類到Oracle8i數據庫中

 

在編寫了Java源代碼之後,就可以將Java對象裝載到Oracle8i數據庫中了。下面是完成這項任務的方法:

 



 

3.         發行Java,生成調用說明

 

在裝載了Java類後,就可以發行該Java類,並生成調用其方法的相應對象方法了。下面是完成該項任務的方法:

 




 

4.         調用JSP

 

在創建了對象類型及對象方法之後,就可以調用這些對象方法了。例如:

 


使用JDeveloper開發JSP

本節以創建用於操縱ARTICLE表的JSP爲例,說明使用JDeveloper 2.0開發JSP的方法。如下圖所示:


這裏只簡單介紹使用JDeveloper開發JSP的過程和步驟,而關於如何使用JDeveloper請讀者參見相關手冊。

 

1.         準備工作

 

1)        選擇“File> New Workspace”,創建名稱爲jsp.jws的工作組。如下圖所示:

 


 

2)        選擇“File>New Project”,此時會啓動新項目創建嚮導,並顯示如下對話框:

 


 

3)        選中“Create an <Empty Project>”,然後單擊“Next”,此時會顯示如下對話框:


 

4)        如上圖所示,在“Project Name”框中鍵入“article”,項目路徑框中鍵入“d:/jsp”,然後單擊“Next”,此時會顯示如下對話框:

 


 

5)        在上圖的對話框中鍵入你所需要的信息,然後單擊“Next”,此時會顯示如下對話框:

 


 

6)        單擊“Finish”,完成項目的創建過程,此時的圖形界面如下:

 


 

2.         編寫Java源代碼

 

在完成了準備工作之後,我們就可以編寫Java源代碼了。步驟如下:

 

1)        選擇“File>New”,此時會彈出如下對話框:

 


 

2)        如上圖所示,選中“Class”,然後單擊“OK”,此時會彈出如下對話框:

 


 

3)        如上圖所示,在“Class Name”框中鍵入“article”,選中“Style”中的“Public”,然後單擊“OK”,此時會增加名稱爲“article.java”的節點。如下圖所示:

 


 

4)        雙擊“article.java”節點,會顯示編輯工作區。如下圖所示:

 


 

5)        然後,在編輯工作區中編寫如下的Java源代碼(article.java):

 

/* 導入Java */

import java.sql.*;

import java.io.*;

import oracle.jdbc.driver.*;

 

/* 主類 */

public class article {

 

  public static String query_article(String code)

  throws SQLException {

    /* 建立到數據庫的缺省連接 */

    Connection conn = new OracleDriver().defaultConnection();

    /* 構造動態SQL語句 */

    String sql = "SELECT author_code,title FROM article " +

                  "WHERE article_code = ?";

    /* 聲明String變量article_info,該變量將用於存儲文章信息 */

    String article_info = new String();

 

    /* 使用try ... catch語句抓取並拋出例外 */

    try {

      /* 準備動態SQL語句 */

      PreparedStatement pstmt = conn.prepareStatement(sql);

      /* 設置動態SQL參數值 */

      pstmt.setString(1, code);

      ResultSet rset = pstmt.executeQuery();

      /* 循環獲取並處理結果 */

      while(rset.next()) {

        article_info = "作者代碼:  " + rset.getString(1) + "/n";

        article_info = article_info + "文章標題:  " +

                          rset.getString(2);

      }

      /* 關閉結果集 */

      rset.close();

      /* 關閉動態SQL語句 */

      pstmt.close();

    } catch (SQLException e) {}

    return article_info;

  }

 

  public static void insert_article(String article_code,

      String author_code,String secrate_level,String pub_date)

  throws SQLException {

    /* 建立到數據庫的缺省連接 */

    Connection conn = new OracleDriver().defaultConnection();

    /* 構造動態SQL語句 */

    String sql = "INSERT INTO article (article_code,author_code," +

                    "secrate_level,pub_date) VALUES (?,?,?,?)";

    /* 使用try ... catch語句抓取並拋出例外 */

    try {

      /* 準備動態SQL語句 */

      PreparedStatement pstmt = conn.prepareStatement(sql);

      /* 設置動態SQL參數值 */

      pstmt.setString(1, article_code);

      pstmt.setString(2, author_code);

      pstmt.setString(3, secrate_level);

      pstmt.setString(4, pub_date);

      pstmt.executeUpdate();

      /* 關閉動態SQL語句 */

      pstmt.close();

    } catch (SQLException e) {}

  }

 

  public static void delete_article (String code)

  throws SQLException {

    /* 建立到數據庫的缺省連接 */

    Connection conn = new OracleDriver().defaultConnection();

    /* 構造SQL語句 */

    String sql = "DELETE FROM article  WHERE article_code = ?";

    /* 使用try ... catch語句抓取並拋出例外 */

    try {

      /* 準備動態SQL語句 */

      PreparedStatement pstmt = conn.prepareStatement(sql);

      /* 設置動態SQL參數值 */

      pstmt.setString(1, code);

      pstmt.executeUpdate();

      /* 關閉動態SQL語句 */

      pstmt.close();

    } catch (SQLException e) {}

  }

 

  public static void update_article (String code,String secrate_level)

  throws SQLException {

    /* 建立到數據庫的缺省連接 */

    Connection conn = new OracleDriver().defaultConnection();

    /* 構造動態SQL語句 */

    String sql = "UPDATE article SET secrate_level = ?" +

                  " WHERE article_code = ?";

    /* 使用try ... catch語句抓取並拋出例外 */

    try {

      /* 準備動態SQL語句 */

      PreparedStatement pstmt = conn.prepareStatement(sql);

      /* 設置動態SQL參數值 */

      pstmt.setString(1, secrate_level);

      pstmt.setString(2, code);

      pstmt.executeUpdate();

      /* 關閉動態SQL語句 */

      pstmt.close();

    } catch (SQLException e) {}

  }

}

 

3.         配置併發行JSP

 

步驟如下:

 

1)        選擇“Project>Deploy>New Profile”,此時會彈出如下對話框:

 


 

2)        如上圖所示,選中“Deploy Java Classes and Stored Procedure to Oracle8i”,然後單擊“Next”,此時會彈出如下對話框:

 


 

3)        單擊“Next”,此時會彈出如下對話框:

 


 

4)        單擊“Next”,此時會顯示如下對話框:

 


 

5)        單擊“Next”,此時會顯示如下對話框:

 


 

6)        清除“Default Database Package”框,然後單擊“Next”,此時會顯示如下對話框:

 


 

7)        單擊“New”創建數據庫連接,此時會彈出如下對話框:

 


 

該對話框用於配置數據庫連接信息,按照你的數據庫設置來配置相應參數。完成數據庫連接的配置後,單擊“Test Connection”測試配置是否正確。如果配置不正確,則修改配置參數。

 

8)        單擊“OK”,此時會彈出如下對話框:

 


 

在該對話框中顯示了相應的數據庫連接信息。

 

9)        單擊“Next”,此時會彈出如下對話框:

 


 

10)     單擊“Finish”,此時會彈出如下對話框:

 


 

11)     單擊“No”退出配置,然後在主窗口中選中配置文件“Profile1.prf”,單擊鼠標右鍵,此時會顯示如下彈出菜單:

 


 

12)     從彈出菜單中選擇“Properties”,此時會顯示如下對話框:

 


 

13)     選擇“Methods”頁,此時的對話框如下所示:

 


 

14)     如上圖所示,選中Publish下的所有單選框,然後單擊“Done”,此時會顯示如下對話框:

 


 

15)     單擊“Yes”,會開始配置和發行JSP,並最終顯示如下界面:

 


 

16)     單擊“Done”,此時會顯示如下信息框:

 


 

17)     單擊“OK”,這樣我們就完成了配置和發行JSP的全部過程了。然後,我們就可以調用JSP完成相應任務了。

 

4.         調用JSP

 

在創建了基於Java的函數和過程之後,就可以調用這些函數和過程了。方法如下:

 

發佈了52 篇原創文章 · 獲贊 0 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章