NO IMAGE

一個資料庫緩衝池指的是快取於記憶體空間中的資料庫物理連線,這些資料庫連線可以被重複使用。資料庫緩衝池對於提高Java 資料庫應用程式的效能十分重要,尤其是當這個Java 資料庫應用程式執行於中間層伺服器環境時。<?xml:namespace prefix = o ns = “urn:schemas-microsoft-com:office:office” />

資料緩衝池存在於中間層伺服器環境當中,可以被不同的Java 應用程式所呼叫。javax.sql.RowSet 包新增了對緩衝資料來源的支援,即可以將緩衝池緩衝的資料庫連線看作是一個是實實在在的資料來源服務來使用。RowSet 包提供了好幾個介面用於處理資料庫緩衝池,主要的介面有:
1、DataSource 介面:DataSource 介面的例項物件代表了存在於中間層伺服器中的緩衝資料來源服務。使用它可以返還資料庫緩衝池中現存的資料庫連線,DataSource 介面的例項物件實際上是某個JNDI 服務的提供者,在使用它之前,該JNDI 服務物件必須先在中間層伺服器環境中註冊,並且和某個服務名繫結在一起,然後它才能被別的Java 應用程式呼叫。
2、ConnectionPoolDataSource 介面:該介面可以用於建立一個被緩衝於緩衝池的資料庫物理連線,它有可能會被DataSource 介面的例項物件呼叫。
3、PooledConnection 介面:該介面代表被緩衝的資料庫連線,它定義了一個getConnection()方法使用這個方法可以返回java.sql.Connection 介面的例項物件。
如何使用RowSet 包定義的類和介面運算元據庫緩衝池,下面的JSP 程式碼段提供了一個簡單的不完整的例子

<%

Context ctx = new InitialContext();

DataSource ds = (DataSource)ctx.lookup(“jdbc/EmployeeDB”);

// First get a Connection. Connection pooling is done

// internally by the DataSource object.

Connection con = ds.getConnection(jdbc/webDatabase” “sa” “”);

// Do all the work as a single transaction (optional).

con.setAutoCommit(false);

// The actual work (queries and updates) would go here.

// Work is done using standard JDBC code as defined in the

// rest of the JDBC API.

// Commit the transaction.

con.commit();

// Close the connection. This returns the underlying physical

// database connection to the pool.

con.close();

%>

上面的JSP 程式碼段的執行機理如下