突然想用一下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连接池
c3p0连接池jar包
c3p0连接池工具
c3p0连接池JAR包c3p0连接池JAR包c3p0连接池JAR包c3p0连接池JAR包c3p0连接池JAR包
c3p0连接池配置, 个人找了很多资料 都在.txt里面,有项目完整配置,解释,还有一些相关网站资料等
一个spring + c3p0 连接池的例子,通过这个例子可以学习简单的spring配置和c3p0连接池的知识
c3p0连接池以及配置文件
c3p0连接池连接数据实例和jar包,有详细的实例参考
c3p0连接池配置使用
C3P0数据库连接池jar包和配置文件
c3p0-0.9.2.1.jar&&hibernate-c3p0-4.0.0.Final[1].jar&&mchange-commons-java-0.2.3.4.jar
C3P0连接池参数配置
C3P0数据库连接池和jar包,因为jdbc没有保持连接的能力,一旦超过一定时间没有使用(大约几百毫秒),连接就会被自动释放掉。而每次新建连接都需要140毫秒左右的时间,所以耗费时间比较多。若使用C3P0连接池来池化...
c3p0连接池jar包,完整数据包。 c3p0与dbcp区别 dbcp没有自动回收空闲连接的功能 c3p0有自动回收空闲连接功能
C3P0连接池配置详解C3P0连接池配置详解C3P0连接池配置详解C3P0连接池配置详解
c3p0连接池参数配置
c3p0连接池配制文件..
C3P0:数据库连接池技术 步骤: 1.导入jar包 c3p0-0.9.5.2.jar mchange-commons-java-0.2.12.jar 2.定义配置文件 名称:c3p0.properties 或者 c3p0-config.xml 路径:直接将文件放在src目录下即可 3.创建数据库连接池...