您的位置:首页 > 数据库

12、数据库连接池C3P0的使用

2016-03-15 17:28 447 查看
1、导入C3P0相应的jar文件



2、导入C3P0的配置文件如下

<?xml version="1.0" encoding="UTF-8"?>

<c3p0-config>
<default-config name="mysql">
<property name="driverClass">com.mysql.jdbc.Driver</property>
<property name="jdbcUrl">
jdbc:mysql://localhost:3306/testdatabase
</property>
<property name="user">root</property>
<property name="password">1234</property>

<property name="acquireIncrement">5</property>
<property name="initialPoolSize">10</property>
<property name="minPoolSize">5</property>
<property name="maxPoolSize">20</property>

</default-config>

<named-config name="zbw">
<property name="driverClass">com.mysql.jdbc.Driver</property>
<property name="jdbcUrl">jdbc:mysql://localhost:3306/testdatabase
</property>
<property name="user">root</property>
<property name="password">root</property>
<property name="acquireIncrement">5</property>
<property name="initialPoolSize">10</property>
<property name="minPoolSize">5</property>
<property name="maxPoolSize">20</property>
</named-config>

</c3p0-config>


3、使用C3P0获取数据库连接的代码如下
package com.jdbc.c3p0pool;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;

import javax.sql.DataSource;

import org.apache.commons.dbcp.BasicDataSourceFactory;

import com.mchange.v2.c3p0.ComboPooledDataSource;

public class GenericityJDBCUtils {
// 数据库连接池,用于获取数据库的连接,提高效率
private static ComboPooledDataSource dataSource = null;

/**
* 在第一次加载GenericityJDBCUtils类的时候,利用C3P0,初始化dataSource
* 然后利用dataSource,可以方便的去获取数据库的连接
*/
static {

try {
dataSource = new ComboPooledDataSource("mysql");
} catch (Exception e) {
throw new RuntimeException(e);
}
}

/**
* 获取一个数据库的连接
*
* @return
*/
public static Connection getConnection() {
try {
return dataSource.getConnection();
} catch (SQLException e) {
throw new RuntimeException(e);
}
}

/**
* 释放数据库的连接
*
* @param conn
* @param st
* @param rs
*/
public static void release(Connection conn, Statement st, ResultSet rs) {

if (rs != null) {
try {
rs.close();
} catch (Exception e) {
throw new RuntimeException("ResultSet关闭异常");
}
rs = null;
}
if (st != null) {
try {
st.close();
} catch (Exception e) {
throw new RuntimeException("Statement关闭异常");
}
st = null;
}
if (conn != null) {
try {
conn.close();
} catch (Exception e) {
throw new RuntimeException("Connection关闭异常");
}
conn = null;
}

}

}


4、测试代码如下
package com.jdbc.c3p0pool;

import java.sql.Connection;

public class Test {
public static void main(String[] args) {
Connection connection = GenericityJDBCUtils.getConnection();
System.out.println(connection);
}

}


5、程序运行结果如下

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: