突然想用一下c3p0连接池,在网上找了一下,要么根本不能用,要么就是达不到自己的要求。
不过后来想起以前有人写过这样的一个类,于是拿出来试了一下,果然能用,而且功能也非常完善。
环境:
eclipse3.5
mysql-connector-java-5.1.7-bin.jar
c3p0-0.9.1.2.jar
commons-logging-1.1.1.jar
JAVA类代码如下:
public class ConnectionPool {
public static void cleanUp(Connection con) {
_instance._cleanUp(con);
}
public static void cleanUp(Connection con, Statement s) {
_instance._cleanUp(con, s);
}
public static void cleanUp(Connection con, Statement s, ResultSet rs) {
_instance._cleanUp(con, s, rs);
}
public static void destroy() throws SQLException {
_instance._destroy();
}
public static Connection getConnection() throws SQLException {
return _instance._getConnection();
}
public static Properties getProperties() {
return _instance._props;
}
private ConnectionPool() {
try {
// Properties
ClassLoader classLoader = getClass().getClassLoader();
_props = new Properties();
_props.load(classLoader.getResourceAsStream(
"connection-pool.properties"));
_props.list(System.out);
// Pooled data source
String driverClass = _props.getProperty("driver.class");
String jdbcUrl = _props.getProperty("jdbc.url");
String user = _props.getProperty("user");
String password = _props.getProperty("password");
int minPoolSize = 5;
try {
minPoolSize = Integer.parseInt(
_props.getProperty("min.pool.size"));
}
catch (Exception e) {
}
int maxPoolSize = 5;
try {
maxPoolSize = Integer.parseInt(
_props.getProperty("max.pool.size"));
}
catch (Exception e) {
}
int acquireIncrement = 5;
try {
acquireIncrement = Integer.parseInt(
_props.getProperty("acquire.increment"));
}
catch (Exception e) {
}
_cpds = new ComboPooledDataSource();
_cpds.setDriverClass(driverClass);
_cpds.setJdbcUrl(jdbcUrl);
_cpds.setUser(user);
_cpds.setPassword(password);
_cpds.setMinPoolSize(minPoolSize);
_cpds.setMaxPoolSize(maxPoolSize);
_cpds.setAcquireIncrement(acquireIncrement);
}
catch (Exception e) {
_log.error(e);
}
}
private void _cleanUp(Connection con) {
_cleanUp(con, null, null);
}
private void _cleanUp(Connection con, Statement s) {
_cleanUp(con, s, null);
}
private void _cleanUp(Connection con, Statement s, ResultSet rs) {
try {
if (rs != null) {
rs.close();
}
}
catch (SQLException sqle) {
_log.error(sqle);
}
try {
if (s != null) {
s.close();
}
}
catch (SQLException sqle) {
_log.error(sqle);
}
try {
if (con != null) {
con.close();
}
}
catch (SQLException sqle) {
_log.error(sqle);
}
}
private void _destroy() throws SQLException {
DataSources.destroy(_cpds);
}
private Connection _getConnection() throws SQLException {
return _cpds.getConnection();
}
private static Log _log = LogFactory.getLog(ConnectionPool.class);
private static ConnectionPool _instance = new ConnectionPool();
private Properties _props;
private ComboPooledDataSource _cpds;
}
当然还得在包的根目录下建一个配置文件connection-pool.properties,内容如下:
driver.class=com.mysql.jdbc.Driver
jdbc.url=
user=
password=
min.pool.size=5
max.pool.size=20
acquire.increment=5
在配置文件中填上相应的值,以后就可以直接使用此类获得数据库连接了。需要注意的是用完之后要手动关闭连接。
分享到:
相关推荐
C3P0连接池是Java应用中常用的数据库连接池组件,它允许程序在不关闭物理连接的情况下,管理和重用数据库连接,从而提高了应用程序的性能和效率。C3P0库依赖于其他几个JAR包来实现其功能,包括`c3p0-0.9.2.1.jar`、`...
C3P0连接池是Java开发中常用的数据库连接池组件,它能够有效地管理和优化数据库连接,提高应用程序的性能和效率。C3P0由Mithun Das Laskar创建,是一个开源项目,广泛应用于各种Java Web应用中。下面将详细介绍C3P0...
C3P0是一个开源的Java数据库连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。在Java应用程序中,数据库连接池扮演着非常重要的角色,它能够有效地管理数据库连接,提高系统性能,减少数据库资源...
C3P0连接池管理类是数据库连接管理的一种机制,用于高效管理和复用数据库连接,以提高系统的性能和资源利用率。C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。在Java应用...
**c3p0连接池工具详解** c3p0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。c3p0的主要功能是管理数据库连接,提高数据库访问效率,避免因为频繁创建和销毁数据库连接而造成...
**C3P0连接池配置详解** C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。C3P0的主要特点是轻量级、高效且稳定,广泛应用于各种Java Web应用中。在本文中,我们将深入探讨...
C3P0数据库连接池是Java开发中广泛使用的开源组件,用于管理数据库连接,提高数据库访问效率并降低系统资源消耗。源代码分析可以帮助我们深入理解其内部机制,从而更好地优化和配置C3P0,提升应用程序性能。 1. **...
C3P0连接池是Java应用中常用的数据库连接池组件,它可以帮助我们高效、稳定地管理数据库连接,提高系统性能并降低资源消耗。本实例将详细介绍如何使用C3P0连接池来连接数据库,以及所需的配置和使用步骤。 首先,...
C3P0连接池是Java开发中常用的数据库连接池组件,它可以帮助应用程序高效、稳定地管理数据库连接。C3P0是由Maurice Priess创建的一个开源项目,它旨在提供一个健壮、完全免费的JDBC连接池实现,以解决数据库连接管理...
C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。在Java应用程序中,尤其是在Web应用中,使用数据库连接池可以有效地管理和控制数据库连接,提高系统的性能和效率。下面...
C3P0是一个开源的Java数据库连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。这个连接池在许多应用中被广泛使用,因为它提供了良好的性能和稳定性。在深入理解C3P0源码之前,我们需要先了解一下...
Spring框架作为一个强大的应用框架,提供了与多种数据库连接池集成的能力,其中包括C3P0。本示例将深入探讨如何在Spring项目中配置并使用C3P0连接池,以实现高效、稳定的数据库连接管理。 **一、Spring框架简介** ...
**c3p0连接池插件详解** c3p0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。作为一个数据库连接池,c3p0的主要作用在于管理数据库连接,以提高应用程序的性能和效率。在高...
C3P0连接池是Java应用中常用的数据库连接池组件,它允许程序管理数据库连接,以提高数据库操作的效率和性能。C3P0库主要包含以下组件:`com.mchange.v2.c3p0.ComboPooledDataSource`,这是核心的数据源类,负责创建...
C3P0作为一个成熟的开源连接池库,提供了许多高级特性,如自动检测空闲连接、连接自动回收、连接池大小动态调整等,可以提升系统的稳定性和效率。 **2. 如何配置C3P0连接池** 配置C3P0连接池主要涉及到以下步骤: ...
C3P0数据库连接池技术是一种广泛应用于Java后端开发中的开源组件,它提供了一种高效、灵活的方式来管理数据库连接,以优化应用程序的性能。C3P0版本号0.9.5.2是该库的一个稳定版本,包含了对多种数据库(如MySQL, ...