国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > Oracle > 正文

J2EE應用中與Oracle數據庫的連接

2024-08-29 13:33:11
字體:
來源:轉載
供稿:網友

  在J2EE應用程序開發中,應用程序與數據庫連接的建立是我們經常碰到的問題之一。
在這里我主要談談在本地應用程序中通過OCI方式、thin方式和JdbcOdbc橋方式連接Oracle數據庫,在iplanet application Server 6.5和Sun ONE 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
{
 private String 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的用戶名和口令。 二、通過連接池獲得Oracle數據庫連接

  這部分主要講述在iPlanet Application Server 6.5和Sun ONE Application Server 7中Oracle數據庫連接池的配置,以及在應用中如何通過連接池獲得數據庫的連接。

  1、iPlanet Application Server 6.5連接池的配置

  先打開iPlanet Application Server 6.5的治理控制臺,選中"database"面板,再選擇"External JDBC Drivers"選項后,點擊"Add…"按鈕,在彈出的對話框中,添加一個名為"ora-type4"的JDBC Driver。

J2EE應用中與Oracle數據庫的連接(圖一)


  Driver Classpath:該參數填寫classes12.zip文件的物理路徑。

  然后在"External JDBC DataSources"中選擇"Add…",在彈出的對話框中添加一個JNDI名稱為"credit2"的數據源。

J2EE應用中與Oracle數據庫的連接(圖二)

  DriverType:選擇剛添加好的"ora-type4";

  Datasource:ora199,為Oracle數據庫服務名;

  Connection Pool Parameters:圖中顯示的是缺省設置,可以根據自己環境情況來更改這些設置。

  保存完設置后,在"DataSource Selection Box"中,選擇剛添加的"credit2"數據源,再選擇"Vendor Specific Properties"按鈕。在對話中添加一個URL屬性。

J2EE應用中與Oracle數據庫的連接(圖三)

  至此,iPlanet Application Server 6.5中的數據庫連接池配置完畢,重起服務使之生效。
  2、Sun ONE Application Server 7連接池的配置

  在配置之前將classes12.zip文件置于…/server1/lib目錄下。通過瀏覽器的4848端口打開Sun ONE Application Server 7的治理界面,選擇"server1"->"JDBC"-> "Connection Pools"下的"New…"

J2EE應用中與Oracle數據庫的連接(圖四)


  添加一個名稱為"MyConnectionPool"的Oracle數據庫連接池。"Next"下一步。

J2EE應用中與Oracle數據庫的連接(圖五)

  在"General"中填寫"Datasource Classname"。

J2EE應用中與Oracle數據庫的連接(圖六)

  在"Properties"中將不需要的屬性刪除,同時添加"URL"屬性。

  "dataSourceName"中填寫Oracle數據庫服務名。

  以下連接池的缺省設置,可以根據自己環境的情況作相應的調整。

J2EE應用中與Oracle數據庫的連接(圖七)

  選擇"Finish"完成連接池的設置。

  下一步為"MyConnectionPool"連接池創建一個JNDI,以便應用程序能夠通過該名稱獲得連接池中的連接。 "server1"->"JDBC"-> "JDBC Resources"下的"New…"

J2EE應用中與Oracle數據庫的連接(圖八)

  至此,Sun ONE Application Server7中的數據庫連接池配置完畢,重起服務使之生效。


  3、通過連接池獲得連接

  以上在iPlanet Application Server 6.5和Sun ONE Application Server7中配置的連接池都可以通過以下的數據庫連接類,從連接池中獲得Oracle數據庫連接。

/**
* 從連接池中獲得數據庫連接
*/

package com.j2ee.db;

import java.util.*;
import java.sql.*;
import javax.sql.*;
import java.io.*;
import oracle.jdbc.driver.*;
import javax.naming.*;

/**
* 通過連接池方式獲得Oracle數據庫連接
*/
public class DbConnection
{
 /**
  *
 */
 public DbConnection()
 {
 }

 /**
  * 獲得Oracle數據庫連接
 */
 public java.sql.Connection connectDbByConnectionPool()
 {
  java.sql.Connection conn=null;
  try
  {
   Context ctx = new InitialContext();
   DataSource ds = (DataSource)ctx.lookup("jdbc/credit2");
   conn=ds.getConnection();
  }
  catch (Exception e)
  {
   System.out.println("ERROR:"+e.getMessage());
  }
  return conn;
 }
}

  4、使用連接池的優點

  使用連接池的優點主要體現在兩個方面:

  對數據庫的連接統一進行配置、治理、監控,以及對數據庫連接池的參數進行優化調整,同時對應用中沒有關閉或其他原因造成沒有關閉的數據庫連接由連接池統一進行治理。

  便于應用的移植和后端數據庫的切換,因為在應用中通過統一的JNDI獲得數據庫的連接,而具體連接的是哪一臺機器上的數據庫與應用無關。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 台前县| 安阳市| 凌海市| 元谋县| 高雄市| 南陵县| 涟水县| 河东区| 松潘县| 雷山县| 岢岚县| 临海市| 轮台县| 乳源| 云浮市| 河津市| 德化县| 健康| 涞源县| 民和| 府谷县| 绿春县| 德化县| 武宣县| 容城县| 寿宁县| 兴海县| 松溪县| 东明县| 马关县| 新津县| 望江县| 汉阴县| 藁城市| 昌图县| 杭锦后旗| 开化县| 沂南县| 稻城县| 嘉黎县| 拜泉县|