<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 22,comments - 35,trackbacks - 0
    [摘錄]:http://gceclub.sun.com.cn/staticcontent/html/2004-03-18/01/oracle.html

          在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 
    {
    	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 Java System Application Server 7中Oracle數據庫連接池的配置,以及在應用中如何通過連接池獲得數據庫的連接。

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

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

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

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

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

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

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

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

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

    2、Sun Java System Application Server 7連接池的配置

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

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

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

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

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

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

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

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

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

    3、通過連接池獲得連接

    以上在iPlanet Application Server 6.5和Sun Java System 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、使用連接池的優點

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

    1. 對數據庫的連接統一進行配置、管理、監控,以及對數據庫連接池的參數進行優化調整,同時對應用中沒有關閉或其他原因造成沒有關閉的數據庫連接由連接池統一進行管理。
    2. 便于應用的移植和后端數據庫的切換,因為在應用中通過統一的JNDI獲得數據庫的連接,而具體連接的是哪一臺機器上的數據庫與應用無關。
    posted on 2006-01-10 14:26 kelven 閱讀(283) 評論(0)  編輯  收藏 所屬分類: java
    主站蜘蛛池模板: 全部免费国产潢色一级| 污污网站免费观看| 在线免费观看污网站| 亚洲国产日韩综合久久精品| 亚洲黄色免费网站| 亚洲成av人片在线看片| free哆啪啪免费永久| 亚洲一级视频在线观看| 国产美女在线精品免费观看| 亚洲一区二区三区写真| 国产大片线上免费看| 国产精品免费视频观看拍拍| 在线亚洲97se亚洲综合在线| a级成人毛片免费视频高清| 亚洲s色大片在线观看| 中文字幕免费高清视频| 亚洲一区二区三区在线网站| 日本高清免费中文字幕不卡| 美女免费视频一区二区| 国产亚洲视频在线播放| 久久久精品2019免费观看| 国产99在线|亚洲| www国产亚洲精品久久久日本| 一个人免费观看日本www视频| 亚洲Av无码专区国产乱码DVD | 羞羞视频在线观看免费| 久久久久亚洲AV综合波多野结衣 | 国产成人精品免费视频软件| 免费精品国自产拍在线播放| 亚洲国产精品无码久久一线 | 亚洲日本国产乱码va在线观看| 无码日韩精品一区二区免费| 看成年女人免费午夜视频| 亚洲精品夜夜夜妓女网| 曰曰鲁夜夜免费播放视频| 免费看又黄又爽又猛的视频软件| 亚洲国产精品无码成人片久久| 久久国内免费视频| aa在线免费观看| 456亚洲人成在线播放网站| 亚洲黄片手机免费观看|