连接池 dpcp c3p0

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了连接池 dpcp c3p0相关的知识,希望对你有一定的参考价值。

在实际开发中,发现对象的方法满足不了开发需求时,有3种方式对其进行增强
1、写一个子类,覆盖其方法,增强其方法
2、用包装设计模式
3、动态代理 最常用的

 

连接池   连接会经常用,但是每次都要调用,程序过于冗杂,所以用连接池优化
  dbcp
  c3p0
tomcat内置的(dbcp)

  只介绍dpcp和c3p0    dpcp和c3p0代码类似,所以用dpcp

1、导入dpcp的包 commons-pool.jar和commons-dbcp-1.2.2.jar 、dpcpconfig的配置文件  mysql的包也导入,以后不说  具体可在百度云找到

 

package com.cn.utils;

import java.io.InputStream;
import java.lang.reflect.Field;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import java.util.Properties;

import javax.sql.DataSource;

import org.apache.commons.dbcp.BasicDataSourceFactory;

//dbcp连接池
public class JdbcUtils_dpcp {
	private static DataSource ds = null;

	static {
		try {
			// 读取配置文件
			InputStream is = JdbcUtils_dpcp.class.getClassLoader()
					.getResourceAsStream("dbcpconfig.properties");
			Properties prop = new Properties();
			prop.load(is);
			// 创建数据源
			BasicDataSourceFactory factory = new BasicDataSourceFactory();
			ds = factory.createDataSource(prop);
		} catch (Exception e) {
			throw new ExceptionInInitializerError(e);
		}
	}

	public static Connection getConnection() throws SQLException {
		return ds.getConnection();

	}

	public static void release(Connection conn, ResultSet rs, Statement st) {
		if (rs != null) {
			try {
				rs.close();
			} catch (Exception e) {
				e.printStackTrace();
			}
			rs = null;
		}
		if (st != null) {
			try {
				st.close();
			} catch (Exception e) {
				e.printStackTrace();
			}
			st = null;
		}
		if (conn != null) {
			try {
				conn.close();
			} catch (Exception e) {
				e.printStackTrace();
			}
		}
	}

  

以上是关于连接池 dpcp c3p0的主要内容,如果未能解决你的问题,请参考以下文章

C3P0连接池的使用

C3P0连接池操作数据库

C3P0连接池工具类实现步骤及方法

c3p0连接池 & JdbcUtils

c3p0数据库连接池管理

JAVA连接池技术