我們都知道再開發Oracle數據庫的密集型實際應用程序時,使用相關連接池而受益。之所以是因為這樣,我們才能夠重用連接,而不是在每次請求連接時都重新創建一個新連接。連接池節約了創建新數據庫連接所需的資源,並提高了應用程序的性能,因為創建新連接始終是一個性能密集型操作。
Oracle Universal Connection Pool for JDBC 表示一個用於緩存 JDBC 連接的全功能實現。UCP 是一個非常有用的特性,它將使您可以重用連接對象,從而可以提高獲取連接過程的速度並節約打開新數據庫連接所需的資源。
假設您希望創建一個 UCP JDBC 連接池來重用到 HR/HR Oracle 數據庫示例模式的已建立連接。以下程序是一個 UCP JDBC 連接池實際運行的簡單示例,將向您展示如何完成此操作。您將首先創建一個支持池的數據源實例,然後設置連接和池的屬性。完成後,您將從池中借用一個連接,然後使用該連接與數據庫交互。最後,您將關閉該連接,將其返回到池。
- import Java.sql.*; import Oracle.ucp.jdbc.PoolDataSourceFactory;
import Oracle.ucp.jdbc.PoolDataSource; public class UcpConnection
{ public static void main(String args[]) throws SQLException
{ try { //Creating a pool-enabled data source PoolDataSource pds
= PoolDataSourceFactory.getPoolDataSource();
//Setting connection propertIEs of the data source pds.
setConnectionFactoryClassName("oracle.jdbc.pool.OracleDataSource");
pds.setURL("jdbc:Oracle:thin:@//localhost:1521/XE"); pds.setUser("hr");
pds.setPassWord("hr"); //Setting pool propertIEs pds.setInitialPoolSize(5);
pds.setMinPoolSize(5); pds.setMaxPoolSize(10);
//Borrowing a connection fro th oo Connection con = pds.getConnection();- ount(); System.out.println("\nAvailable connections:
" + avlConnCount); int brwConnCount = pds.getBorrowedConnectionsCount();
System.out.println("\nBorrowed connections: " + brwConnCount);
//Working with the connection Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("select user from dual");
while(rs.next()) System.out.println("\nConnected as: "+rs.getString(1));
rs.close(); //Returning the connection to the pool conn.close(); conn=null;
System.out.println("\nConnection returned to the pool");
//Checking the number of available and borrowed connections again avlConnCount =
pds.getAvailableConnectionsCount();
System.out.println("\nAvailable connections: " + avlConnCount);
brwConnCount = pds.getBorrowedConnectionsCount();
System.out.println("\nBorrowed connections: " + brwConnCount); }
catch(SQLException e)
{ System.out.println("\nAn SQL exception occurred : " + e.getMessage()); } } }
這裡值得注意的是關閉連接時的變化。以上程序的輸出闡釋了關閉從 UCP JDBC 連接池中借用的連接將使該連接返回到池,以供下一次連接請求使用。
該應用程序的輸出應如下所示:
- Connection borrowed from the poolAvailable connections:
4Borrowed connections: 1Connected as: HRConnection returned
to the poolAvailable connections: 5Borrowed connections: 0
上述的相關內容就是使用 UCP 緩存 JDBC 連接對開發Oracle數據庫密集型應用程序的描述,希望會給你帶來一些幫助在此方面。