c3p0, dbcp 开源的连接池开源连接使用
2009-08-23 12:29
513 查看
自己要实现一个连接池太复杂了!要考虑的东西太多,比如:连接对象的 close 方法处理、物理连接中断时处理、
数据库连接池耗尽了之后如何处理等等诸如此类的问题。
建议使用 c3p0, dbcp 等等这些开源的连接池。
下面这个是 c3p0 的,使用 ConnectionFactory.getConnection() 获得连接之后其他与 JDBC 一样使用。
Java code
数据库连接池耗尽了之后如何处理等等诸如此类的问题。
建议使用 c3p0, dbcp 等等这些开源的连接池。
下面这个是 c3p0 的,使用 ConnectionFactory.getConnection() 获得连接之后其他与 JDBC 一样使用。
Java code
import java.beans.PropertyVetoException; import java.sql.Connection; import java.sql.DatabaseMetaData; import java.sql.SQLException; import org.apache.log4j.Logger; import com.bao.config.Config; import com.mchange.v2.c3p0.ComboPooledDataSource; public class ConnectionFactory { private final static Logger LOG = Logger.getLogger(ConnectionManager.class); private static ComboPooledDataSource ds = new ComboPooledDataSource(); private ConnectionFactory() { } static { try { if(LOG.isDebugEnabled()) { LOG.debug("正在初始化数据连接池"); } Config config = Config.getInstance(); // c3p0 的 DataSource 设置,其他的参数还有很多,参考 c3p0 文档 ds.setDriverClass(config.getJdbcDriver()); // JDBC 驱动 ds.setJdbcUrl(config.getJdbcUrl()); // JDBC URL ds.setUser(config.getDatabaseUsername()); // 数据库连接用户名 ds.setPassword(config.getDatabasePassword()); // 数据库连接用户名的密码 ds.setMaxPoolSize(config.getDatabasePoolMaxSize()); // 最大连接数 ds.setMinPoolSize(config.getDatabasePoolMinSize()); // 最小连接数 if(LOG.isDebugEnabled()) { LOG.debug("数据连接池初始化完成" + ", 最大可用连接数:" +ds.getMaxPoolSize() + ", 最小连接数:" + ds.getMinPoolSize()); } } catch (PropertyVetoException e) { LOG.error("连接池初始化失败,原因:" + e.getMessage()); e.printStackTrace(); } } public static Connection getConnection() throws SQLException { return ds.getConnection(); } }
相关文章推荐
- DBCP、C3P0、Proxool 、 BoneCP开源连接池的比较
- 连接池与数据源:DBCP以及C3P0的使用
- 开源DBCP、C3P0、Proxool 、 BoneCP连接池的比较
- 事务、连接池、开源数据源(DBCP、C3P0)
- 开源数据源的使用(DBCP和C3P0)以及JNDI技术
- 使用JDBC连接MySQL数据库--典型案例分析(三)----使用Apach DBCP连接池
- C3P0、DBCP、Tomcat JDBC Pool 连接池区别(推荐使用JDBC Pool)
- jdbc基础 (五) 连接池与数据源:DBCP以及C3P0的使用
- 开源DBCP、C3P0、Proxool 、 BoneCP连接池的比较
- 使用c3p0与DBCP连接池,造成的MySql 8小时问题解决方案
- JDBC之连接池DBCP与c3p0的简单使用
- 使用c3p0与DBCP连接池,造成的MySql 8小时问题解决方式
- DBCP、C3P0、Proxool 、 BoneCP开源连接池的比较
- 使用c3p0与DBCP连接池,造成的MySql 8小时问题解决方案
- 使用c3p0与DBCP连接池,造成的MySql 8小时问题解决方案
- 使用c3p0与DBCP连接池,造成的MySql 8小时问题解决方案
- 数据库开源连接池DBCP、C3P0、Proxool 、JNDI、 BoneCP的比较
- 使用c3p0与DBCP连接池,造成的MySql 8小时问题解决方案
- 开源的连接池技术DBCP和C3P0
- MySQL之——使用c3p0与DBCP连接池,造成的MySql 8小时问题解决方案