1.在项目中导入c3p0.jar包
2.在src目录下创建c3p0-config.xml文件
3.在xml文件中增加下列节点:
<?xml version="1.0" encoding="UTF-8"?>
<c3p0-config>
<!-- 如果在new的时候不指定使用哪个配置则使用下面缺省的配置 -->
<default-config>
<property name="driverClass">com.mysql.jdbc.Driver</property>
<property name="jdbcUrl">jdbc_url</property>
<property name="user">用户名</property>
<property name="password">密码</property>
<!-- 池里面的链接数量不够的时候可以再找数据库要多少个 -->
<property name="acquireIncrement">5</property>
<property name="initialPoolSize">10</property>
<property name="minPoolSize">5</property>
<property name="maxPoolSize">20</property>
</default-config>
<!-- This app is massive! -->
<named-config name="mysql">
<pre name="code" class="html"> <property name="driverClass">jdbc驱动</property>
<property name="jdbcUrl">jdbc_url</property>
<property name="user">用户名</property>
<property name="password">密码</property>
<property name="acquireIncrement">5</property><!--池里面的链接数量不够的时候可以再找数据库要多少个 --> <property name="initialPoolSize">10</property> <property name="minPoolSize">5</property> <property name="maxPoolSize">20</property> <!-- intergalactoApp adopts a different approach to configuring statement caching --> <!-- <property name="maxStatements">0</property> <property name="maxStatementsPerConnection">5</property> --> </named-config> <named-config name="oracle"> <property name="driverClass">jdbc驱动</property> <property name="jdbcUrl">jdbc_url</property> <property name="user">用户名</property> <property name="password">密码</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>
4.在项目中新建DBConnector类:
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import com.mchange.v2.c3p0.ComboPooledDataSource;
public class DBConnector {
//数据库连接
private static ComboPooledDataSource dataSource = null;
//静态块加载
static{
try
{
dataSource = new ComboPooledDataSource("mysql");
}catch(Exception e)
{
e.printStackTrace();
}
}
//获取数据库连接
public static Connection getConnection(){
Connection conn = null;
try {
conn = dataSource.getConnection();
System.out.println("获取数据库连接:"+conn);
} catch (SQLException e) {
e.printStackTrace();
}
return conn;
}
//关闭数据库连接
public static void release(Connection conn,PreparedStatement pstmt,ResultSet rs)
{
try{
if(conn != null)
{
conn.close();
conn = null;
}
if(pstmt != null)
{
pstmt.close();
pstmt = null;
}
if(rs != null)
{
rs.close();
rs = null;
}
}catch(Exception e)
{
e.printStackTrace();
}
}
}
5.在需要获取数据库连接的时候,使用 conn = DBConnector.getConnection() 来从c3p0管理的数据库连接池中获取一个数据库连接。
6.在使用完数据库连接的时候,需要释放连接,调用DBConnector.release(conn, pstmt, rs);即可