`
zhuyufufu
  • 浏览: 139494 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

Oracle自带连接池使用(转载收录)

阅读更多
最近在搞数据迁移:从sql server 迁数据到oracle。

其中sql server在本地,oracle在远程数据库服务器。

用jdbc写了段代码连接两个库,转数据。

连oracle时用了一个jdbc连接,速度很慢。

想了下用数据库连接池。

为何不直接使用 Oracle 提供的连接池实现(转载收录)
http://unmi.cc/use-oracle-carried-connection-pool/
Oracle自带连接池应用
http://shihuan830619.iteye.com/blog/1162300

上代码,看main
package com.zas.test.util;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import javax.sql.DataSource;
import javax.sql.PooledConnection;

import oracle.jdbc.pool.OracleConnectionCacheImpl;
import oracle.jdbc.pool.OracleConnectionPoolDataSource;

/**
 * Oracle自带连接池应用
 * */
public class OraclePooled {

	private static PooledConnection dbpool;
	
	public OraclePooled(String ConnectionURL, String UserName, String PassWord) {
		try {
			OracleConnectionPoolDataSource ocpds = new OracleConnectionPoolDataSource();
			ocpds.setURL(ConnectionURL);
			ocpds.setUser(UserName);
			ocpds.setPassword(PassWord);
			dbpool = ocpds.getPooledConnection();
		} catch (Exception ex) {
			System.err.println("Error in PooledSQL-construct: ");
			ex.printStackTrace(System.err);
		}
	}
	
	protected void finalize() { 
		if(dbpool != null) { 
			try { 
				dbpool.close(); 
	        } catch(Exception ex){    
	        	ex.printStackTrace();       
	        } 
	    } 
	}
	
	public ResultSet Query(String sql, String[] params){ 
		PreparedStatement pstmt = null; 
	    ResultSet rs = null; 
	    Connection connection = null; 

	    try { 
	        connection = dbpool.getConnection(); 
	        pstmt = connection.prepareStatement(sql, ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
	        for(int i=1; i<params.length+1; i++){
	        	pstmt.setString(i, params[i-1]);
	        }
			rs = pstmt.executeQuery();
			while(rs.next()){
		    	System.out.println(rs.getString(1));
		    	System.out.println(rs.getString(2));
		    }
	    } catch(Exception ex) { 
	        System.err.println("Error in Query - SQLBean: "); 
	        ex.printStackTrace(System.err); 
	    } 

	    return rs; 
	}
	/**
	 * 创建一个 DataSource
	 * 直接使用 OracleConnectionCacheImpl
	 * @throws SQLException
	 */
	public static DataSource createDataSource() throws SQLException
	{
	    OracleConnectionCacheImpl occi = new OracleConnectionCacheImpl();
	    occi.setURL("jdbc:oracle:thin:@10.128.38.2:1521:sr3");
	    occi.setUser("qatest");
	    occi.setPassword("qatest");
	    occi.setMinLimit(2);  //最小连接数
	    occi.setMaxLimit(10); //最大连接数
	    return occi;
	}
	
	public static void main(String[] args) throws SQLException{
		DataSource dataSource = OraclePooled.createDataSource();
		Connection connection = dataSource.getConnection();
		String sql = "select 1 from dual";
		PreparedStatement pstmt = connection.prepareStatement(sql, ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
		ResultSet rs = pstmt.executeQuery();
		while(rs.next()){
	    	System.out.println(rs.getString(1));
	    }
	}
}


分享到:
评论

相关推荐

    JAVA 使用数据库连接池连接Oracle数据库全代码

    ### JAVA 使用数据库连接池连接Oracle数据库全代码解析 #### 一、概述 本文将详细介绍如何在Java项目中使用Apache DBCP(Database Connection Pool)来连接Oracle数据库,并提供完整的示例代码。通过这种方式,我们...

    oracle9i 自带连接池Java代码

    ### Oracle9i 自带连接池Java代码解析 #### 一、引言 在J2EE应用开发中,数据库连接管理是十分重要的一个环节。合理的连接管理不仅能够提高系统的响应速度,还能有效避免资源浪费,提升应用程序的整体性能。Oracle...

    oracle 数据库,在C++中用连接池实现高速连接与访问.rar

    本话题将深入探讨如何在C++环境中利用连接池技术实现对Oracle数据库的高速连接与访问。 一、Oracle数据库基础 Oracle数据库提供了一套完整的数据管理解决方案,包括事务处理、数据仓库、网络数据库、安全性等。它的...

    连接mysql和oracle的连接池包

    在IT行业中,数据库连接池是优化数据库访问性能和资源管理的重要工具。本压缩包提供了连接MySQL和...通过正确配置和使用这两个连接池包,开发者可以高效地在MySQL和Oracle数据库之间切换,提高应用程序的灵活性和性能。

    java oracle 数据库 连接池 小例子

    本示例是关于如何使用C3P0连接池来连接Oracle数据库的一个简单实例。C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。 首先,我们需要理解什么是数据库连接池。数据库连接...

    连接池管理连接oracle数据库

    这是用连接池技术管理连接oracle数据库的工具类代码,如果想连接MySQL,直接修改配置文件即可。

    tomcat下配置oracle的连接池

    在IT行业中,数据库连接池是优化应用程序性能的关键技术之一,特别是在使用像Oracle这样的大型企业级数据库时。在Tomcat这样的应用服务器中配置Oracle连接池,可以有效地管理数据库连接,提高系统资源利用率,减少...

    第16章OracleJDBC连接池和缓存161OracleJDBC连接池和缓存包.ppt

    在Java应用程序中,使用JDBC(Java Database Connectivity)与Oracle数据库交互时,通过连接池可以有效地管理和复用数据库连接,减少每次建立和关闭连接带来的开销。 JDBC连接池的基本原理是预先创建一组数据库连接...

    Oracle数据库的连接池

    Oracle数据库的连接池是数据库管理中的一个重要概念,它允许应用程序高效地管理和重用数据库连接,以提高系统的性能和响应速度。C3P0是一个开源的Java连接池实现,专为Oracle数据库和其他支持JDBC的数据库设计。这个...

    Tomcat下对Oracle数据库连接池数据源的配置

    本教程将详细解释如何在Tomcat服务器上配置Oracle 10g数据库的连接池数据源。 首先,确保你已经安装了必要的软件环境: 1. Java环境:JDK 1.4 2. 服务器:Tomcat 5.5 3. 数据库:Oracle 10g 配置步骤如下: 1. **...

    webphere下oracle连接池的配置

    ### WebSphere 下 Oracle 连接池的配置详解 #### 一、概述 在WebSphere环境下配置Oracle连接池是一项重要的任务,它能够显著提高应用程序的性能和响应速度。连接池技术可以有效管理数据库连接资源,避免频繁创建和...

    Tomcat配置Oracle连接池.doc

    《Tomcat配置Oracle连接池详解》 在Java Web应用中,Tomcat作为流行的Servlet容器,其性能优化和资源管理是关键环节之一。Oracle数据库作为企业级的数据库管理系统,经常被用于存储大量数据。本文将深入探讨如何在...

    数据库连接池在Oracle数据库中的实现.docx

    综上所述,数据库连接池在Oracle数据库中的实现涉及到JDBC接口的使用、设计模式的应用以及连接池的参数配置,它对于提升应用程序性能、优化数据库资源利用具有重要意义。同时,理解并掌握相关的技术和实践,对于任何...

    oracle数据库连接池源码

    JDBC连接池 用JAVA写的连接数据库的代码 JDBC连接池 用JAVA写的连接数据库的代码

    oracle 和mysql数据库的连接池一起下载

    Oracle和MySQL是两种广泛使用的数据库系统,它们各自都有相应的连接池实现,以优化数据库连接的创建、管理和释放。 Oracle数据库连接池通常指的是Oracle Data Provider for .NET (ODP.NET) 中的Oracle Connection ...

    oracle连接池+驱动+jdbc

    在这个场景中,"oracle连接池+驱动+jdbc"的主题涉及了三个关键概念:Oracle JDBC驱动、连接池以及在Tomcat服务器中配置连接池的实践。 首先,Oracle JDBC驱动是Java应用程序与Oracle数据库通信的桥梁。Oracle提供了...

    Tomcat_6.0配置oracle数据库连接池

    在IT行业中,数据库连接池是优化应用程序性能的关键技术之一,特别是在使用像Apache Tomcat这样的Java应用服务器时。本文将详细讲解如何在Tomcat 6.0中配置Oracle数据库连接池。 首先,我们要明白连接池的基本原理...

    利用Oracle JDBC连接池提高Web访问数据库的效率.pdf

    本文将深入探讨Oracle JDBC连接池的工作机制、优势以及使用方法。 首先,JDBC(Java Database Connectivity)是Java语言访问数据库的标准接口,JDBC 2.0版本引入了对数据源和连接池的支持。Oracle JDBC驱动实现了...

    利用python-oracledb库连接Oracledb数据库,使用示例

    python-oracledb的源码和使用示例代码, python-oracledb 1.0,适用于Python versions 3.6 through 3.10. Oracle Database; This directory contains samples for python-oracledb. 1. The schemas and SQL ...

    mysql,sqlserver,oracle,java连接池,连接程序

    为了提高效率和资源利用率,程序员通常会使用“连接池”技术。本项目涵盖了对MySQL、SQL Server、Oracle这三种主流关系型数据库的Java连接池实现,旨在提供一个可以直接在Eclipse环境中运行的代码示例。 首先,我们...

Global site tag (gtag.js) - Google Analytics