J2EE應用中與Oracle資料庫的串連

來源:互聯網
上載者:User

J2EE應用中與Oracle資料庫的串連

作者:洪建

在J2EE應用程式開發中,應用程式與資料庫連接的建立是我們經常遇到的問題之一。在這裡我主要談談在本地應用程式中通過OCI方式、thin方式和JdbcOdbc橋方式串連Oracle資料庫,在iPlanet Application Server 6.5和Sun Java System Application Server 7中對Oracle資料庫連接池的配置以及應用中如何從串連池中獲得串連。

一、本地通過JDBC獲得Oracle資料庫連接

通過JDBC獲得Oracle資料庫連接,有三種方式:OCI方式、thin方式和JdbcOdbc橋方式。OCI方式依賴於本地的動態連結程式庫,如果在本地安裝了Oracle資料庫用戶端可以採用該方式;而thin方式為純java的資料庫連接方式;JdbcOdbc橋方式依賴於本地ODBC資料庫源的配置,這種方式一般不太被採用。

1、OCI方式

先在本地安裝Oracle用戶端,安裝完之後,在安裝的路徑中可以找到…/jdbc/lib/classes12.zip檔案,我們在環境變數classpath中設定classes12.zip所在的路徑。

然後通過以下的資料庫連接類,在本地通過OCI方式獲得Oracle資料庫連接。

/*** 在本地獲得資料庫連接*/package com.j2ee.db;import java.util.*;import java.sql.*;import javax.sql.*;import java.io.*;import oracle.jdbc.driver.*; import javax.naming.*;    /*** 通過OCI方式獲得Oracle資料庫連接*/public class DbConnection {  final static String sDBDriver = "oracle.jdbc.driver.OracleDriver";  final static String sConnStr = "jdbc:oracle:oci8:sr/sr@ora199";    /**  *   */  public DbConnection()   {  }    /**  * 獲得Oracle資料庫連接   */  public java.sql.Connection connectDbByOci()   {    java.sql.Connection conn=null;    try  {  Class.forName(sDBDriver);  conn = DriverManager.getConnection(sConnStr);  }  catch (Exception e)   {      System.out.println("ERROR:"+e.getMessage());   }   return conn;  }}

在連接字串 "jdbc:oracle:oci8:sr/sr@ora199" 中,"sr/sr"為Oracle使用者的使用者名稱和口令,"ora199"為資料庫服務名。

2、thin方式

先到Oracle技術網(http://otn.oracle.com/global/cn/software/tech/java/sqlj_jdbc/index.html)下載Oracle JDBC Drivers,同樣地將下載後的zip檔案的路徑設定在環境變數classpath。

然後通過以下的資料庫連接類,在本地通過thin方式獲得Oracle資料庫連接。

/*** 在本地獲得資料庫連接*/package com.j2ee.db;import java.util.*;import java.sql.*;import javax.sql.*;import java.io.*;import oracle.jdbc.driver.*; import javax.naming.*;    /*** 通過thin方式獲得Oracle資料庫連接*/public class DbConnection {privateString sConnStr = "";  /*** 預設構造器*/public DbConnection() {sConnStr = "jdbc:oracle:thin:@10.1.4.199:1521:ora199";}/*** @param ip,serviceName*/public DbConnection(String ip,String serviceName) {sConnStr = "jdbc:oracle:thin:@"+ip+":1521:"+serviceName;}  /*** 通過thin方式獲得Oracle資料庫的串連.*/public java.sql.Connection connectDbByThin() {  java.sql.Connection conn=null; try{Class.forName(sDBDriver);conn = DriverManager.getConnection(sConnStr,"sr","sr");}catch (Exception e) {System.out.println("ERROR:"+e.getMessage()); } return conn;}/*** 通過thin方式獲得Oracle資料庫的串連.* @param userId,password*/public java.sql.Connection connectByJdbc(String userId,String password) {  java.sql.Connection conn=null; try{Class.forName(sDBDriver);conn = DriverManager.getConnection(sConnStr,userId,password);}catch (Exception e) {System.out.println("ERROR:"+e.getMessage()); } return conn;}}

這種方式運用起來比較靈活,簡單,具有較強的移植性和適用性。只要注意連接字串"jdbc:oracle:thin:@10.1.4.199:1521:ora199"中具體參數的設定即可。

3、JdbcOdbc橋方式

先通過管理工具中的資料來源來添加本地對Oracle資料庫的串連,然後通過以下的資料庫連接類,在本地通過JdbcOdbc橋方式獲得Oracle資料庫連接。

/*** 在本地獲得資料庫連接*/package com.j2ee.db;import java.util.*;import java.sql.*;import javax.sql.*;import java.io.*;import oracle.jdbc.driver.*; import javax.naming.*;    /*** 通過JdbcOdbc橋方式獲得Oracle資料庫連接*/public class DbConnection {   /**  *   */  public DbConnection()   {  }    /**  * 獲得Oracle資料庫連接   */  public java.sql.Connection connectDbByJdbcOdbcBridge()   {    java.sql.Connection conn=null;    try  {  Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");  con=DriverManager.getConnection("jdbc:odbc:ora199","sr","sr");  }  catch (Exception e)   {      System.out.println("ERROR:"+e.getMessage());   }   return conn;  }}

在getConnection方法中第一個參數"jdbc:odbc:ora199" 中的"ora199"為本地ODBC資料來源的資料來源名稱,第二個參數和第三個參數分別為Oracle的使用者名稱和口令。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.