Oracle数据库的密集型实际应用程序的开发

数据库 Oracle
以下的文章主要是介绍 UCP JDBC 连接池用到的HR/HR Oracle 数据库的示例模式建立连接的实际操作方案的描述。以下就是正文的介绍。

我们都知道再开发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()); } } } 
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.

 

 

这里值得注意的是关闭连接时的变化。以上程序的输出阐释了关闭从 UCP JDBC 连接池中借用的连接将使该连接返回到池,以供下一次连接请求使用。

 

该应用程序的输出应如下所示:

 

Connection borrowed from the poolAvailable connections: 
4Borrowed connections: 1Connected as: HRConnection returned 
to the poolAvailable connections: 5Borrowed connections: 0 
  • 1.
  • 2.
  • 3.

 上述的相关内容就是使用 UCP 缓存 JDBC 连接对开发Oracle数据库密集型应用程序的描述,希望会给你带来一些帮助在此方面。

 

【编辑推荐】

  1. Oracle数据库的异构服务原理描述
  2. Oracle细粒度如何进行访问
  3. 用Oracle屏蔽英文来提示信息的正确方法
  4. Oracle进程中出现带锁状况的解决
  5. Oracle动态Web开发实例演示
责任编辑:佚名 来源: 博客园
相关推荐

2018-03-22 09:16:06

密集型场景SSD

2022-06-27 14:01:31

LZ4 分析数据密集型压缩算法

2011-11-14 13:29:22

移动应用开发移动开发移动互联网

2025-02-24 09:00:00

CPUI/O密集型任务

2012-10-08 09:45:22

数据密集型处理系统

2012-12-14 11:00:02

VDI桌面虚拟化

2010-04-13 12:23:34

Oracle数据库

2010-04-21 11:27:55

Oracle数据库

2010-04-15 09:36:42

2010-04-22 12:26:10

Oracle数据

2020-09-07 07:33:01

NodejsCPU密集型

2010-04-19 11:37:20

Oracle数据库

2010-04-19 09:26:04

Oracle数据库

2011-03-30 11:15:35

SQL Server数应用程序

2022-05-10 08:00:00

数据库数据库监控监控系统

2021-02-23 23:06:31

数据库Redis技术

2010-07-14 13:14:01

SQL Server数

2011-11-11 09:11:09

云计算HPC集群

2016-05-09 10:08:05

IBMIBM FlashSy
点赞
收藏

51CTO技术栈公众号