程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle數據庫基礎 >> 插入Oracle數據的實際操作

插入Oracle數據的實際操作

編輯:Oracle數據庫基礎

我們今天主要和大家分享的是高級Oracle數據訪問控制,在Java存儲過程中是可以用來控制與限制對Oracle數據的相關訪問,其主要方法是只允許用戶通過存儲過程管理數據,而存儲過程在其調用者的權限內執行,而不能對表本身進行訪問。

例如,你可以在特定時間內禁止更新數據,或者使管理者只具有查詢工資數據的權利,而不能進行更新,或者記錄所有的訪問並通知某一安全機構。

原有應用程序與J2EE應用程序之間的數據邏輯共享

因為原有應用程序與J2EE應用程序都通過Call Spec調用存儲過程,所以J2EE和非J2EE應用程序可以共享相同的Oracle數據邏輯。由於有了Call Spec,所以不用考慮所用的是何種實現語言(無論是PL/SQL還是Java),該數據邏輯都可以共享。

為BMP實體Bean自動生成主關鍵字

在對EJB實體bean應用BMP時,一個bean實例可以由自動生成的與新插入的Oracle數據相關聯的主關鍵字惟一確定,它是ejbCreate()的返回值。可以利用一個插入相應數據的存儲過程在一個數據庫操作中檢索ejbCeater()中的該值,並檢索或計算主關鍵字。

作為另一種方法,也可以利用JDBC3.0的RETURN_GENERATED_KEYS特性,以一個SQL語句插入該數據並檢索相應的關鍵字(或ROWID)。但是,存儲過程方法在各個JDBC驅動器版本和數據庫之間更具可移植性。

可以用以下三個步驟實現這一模式:

創建一個Java存儲過程,在公共GenPk類中定義一個公共靜態Java方法insertAccount()。此方法將插入Oracle數據、計算惟一的關鍵字(通過發出一個序列號),並返回計算出的關鍵字作為主關鍵字。

定義Call Spec

  1. CREATE OR REPLACE PROCEDURE insertAccount
    (owner IN varchar, bal IN number, newid OUT number) 
    AS LANGUAGE JAVA NAME ''GenPK.insertAccount( Java.lang.String [])''; / 

在ejbCreate()內調用存儲過程

  1. Public AccountPK ejbCreate(String ownerName, int balance) 
    throws CreateException { try { CallableStatement call
     = 
    conn
    .prepareCall
    { "{call insertAccount(?, ?, ?)}"}; return new AccountPK(accountID); } }  
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved