<form id="hz9zz"></form>
  • <form id="hz9zz"></form>

      <nobr id="hz9zz"></nobr>

      <form id="hz9zz"></form>

    1. 明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

      JDBC Connection Pool

      [摘要]數據庫連接池簡介 在傳統的兩層結構中,客戶端程序在啟動時打開數據庫連接,在退出程序時關閉數據庫連接。這樣,在整個程序運行中,每個客戶端始終占用一個數據庫連接,即使在大量沒有數據庫操作的空閑時間,如用...
      數據庫連接池簡介
      在傳統的兩層結構中,客戶端程序在啟動時打開數據庫連接,在退出程序時關閉數據庫連接。這樣,在整個程序運行中,每個客戶端始終占用一個數據庫連接,即使在大量沒有數據庫操作的空閑時間,如用戶輸入數據時,從而造成數據庫連接的使用效率低下。
      在三層結構模式中,數據庫連接通過中間層的連接池管理。只有當用戶真正需要進行數據庫操作時,中間層才從連接池申請一個連接,數據庫操作完畢,連接立即釋放到連接池中,以供其他用戶使用。這樣,不僅大大提高了數據庫連接的使用效率,使得大量用戶可以共享較少的數據庫連接,而且省去了建立連接的時間。

      連接池的配置使用
      數據庫連接池是應用服務器的一項基本功能,我們以Apusic Application Server為例,來說明JDBC連接池的配置使用。

      Apusic JDBC連接池提供對多種數據庫的支持,如Oracle、MS SqlServer、Sybase、Informix、DB2等。

      Apusic JDBC連接池可以通過數據庫本身的JDBC Driver連接到數據庫,也可以通過JDBC-ODBC橋連接到數據庫。下面我們以Oracle為例說明如何配置連接池:

      Oracle數據庫的JDBC Driver包文件classes111.zip在/usr/oracle/jdbc/lib(假設oracle的安裝目錄是/usr/oracle)目錄下,首先將classes111.zip加入到系統的CLASSPATH中。然后在apusic/config/apusic.conf(假設安裝目錄為apusic) 中作如下設置:

      <SERVICE
      CLASS="com.apusic.jdbc.PoolManager"
      NAME="JdbcPool:name=jdbc/sample"
      >
      <ATTRIBUTE NAME="ExpirationTime" VALUE="300"/>
      <ATTRIBUTE NAME="MinCapacity" VALUE="5"/>
      <ATTRIBUTE NAME="URL" VALUE="jdbc:oracle:thin:@192.168.19.136:1521:orcl"/>
      <ATTRIBUTE NAME="ConnectionProperties" VALUE="user=gtj,password=abc123"/>
      <ATTRIBUTE NAME="DriverClassName" VALUE="oracle.jdbc.driver.OracleDriver" />
      <ATTRIBUTE NAME="MaxCapacity" VALUE="30"/>
      </SERVICE>

      ExpirationTime: 超時時間,單位是秒。當一個數據庫連接超過expirationTime設定時間不被使用
      時,系統會自動關閉這個數據庫連接。默認值為300秒
      MinCapacity:最小連接數
      URL:數據庫的URL
      ConnectionProperties: 連接屬性,其中:user用戶名,password密碼
      DriverClassName:JDBC驅動程序類名
      MaxCapacity:最大連接數
      192.168.19.136: oracle所在計算機的IP地址。
       
      調用連接池
      我們以一個JSP程序為例,說明如何使用連接池。首先通過JNDI得到DataSource,再的得到連接Connection,如下例所示:


      <html>

      <head>

      <title>Jsp sample</title>

      </head>

      <body>

      <p>

      <%@ page contentType="text/html;charset=gb2312" %>

      <%@ page import="

      java.sql.*,

      javax.naming.*,

      javax.sql.*

      "%>

      <%

      try{

      Context ctx = new InitialContext();

      DataSource ds = (DataSource)ctx.lookup("jdbc/sample");

      Connection con = ds.getConnection();

      Statement stmt = con.createStatement();

      ResultSet rs = stmt.executeQuery("select ENAME from EMP");

      while(rs.next()){

      out.println("<p>" + rs.getString(1));

      }

      rs.close();

      stmt.close();

      }catch(Exception e){

      System.out.println("jsp:" + e.getMessage());

      }finally{

      try{

      con.close();

      }catch(Exception e1){}

      }

      %>

      </body>

      </html>



      日韩精品一区二区三区高清