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 
 

  • ojdbc14-9.2.0.5.jar (1.1 MB)
  • 下载次数: 0

你可能感兴趣的:(oracle,连接池)