JAVAWEB文章索引点这里
C3P0
C3P0是目前醉流行的开源数据库连接池之一,它实现了DataSource数据源接口,支持JDBC2和JDBC3的标准规范,易于拓展并且性能优越,著名的开源框架Hibernate和Spring使用的都是该数据源。ComboPooledDataSource是DataSource接口的实现类,它提供了数据源的对象相关的方法。需要导入jar包(如:c3p0-0.9.1.2.jar)
它可以通过类似于DBCP中设置参数的方法来配置数据库信息。
package com.dbhelp;
import java.beans.PropertyVetoException;
import java.sql.Connection;
import java.sql.SQLException;
import com.mchange.v2.c3p0.ComboPooledDataSource;
public class DBUtils_C3P0 {
public static ComboPooledDataSource cpds = new ComboPooledDataSource();
public static void main(String[] args) {
for(int i = 0; i < 10;i++) {
System.out.println(getConnection());
}
}
static {
try {
//设置连接参数
cpds.setDriverClass("com.mysql.jdbc.Driver");
cpds.setJdbcUrl("jdbc:mysql://localhost:3306/javabeantest");
cpds.setUser("root");
cpds.setPassword("123456");
//设置连接池参数
cpds.setInitialPoolSize(5);//设置初始化连接数量
cpds.setMaxPoolSize(10);//设置最大连接数量
} catch (PropertyVetoException e) {
e.printStackTrace();
}
}
public static Connection getConnection() {
Connection conn = null;
try {
//从连接池获取连接
conn = cpds.getConnection();
} catch (SQLException e) {
e.printStackTrace();
}
return conn;
}
}
也可以使用配置文件c3p0-config.xml
<c3p0-config>
<!-- 默认配置 -->
<default-config>
<!-- 连接参数 -->
<property name="jdbcUrl">jdbc:mysql://localhost:3306/javabeantest</property>
<property name="user">root</property>
<property name="password">123456</property>
<property name="driverClass">com.mysql.jdbc.Driver</property>
<!-- 连接池参数 -->
<property name="initialPoolSize">5</property>
<property name="maxPoolSize">12</property>
<property name="checkoutTimeout">5000</property>
<property name="minPoolSize">3</property>
</default-config>
</c3p0-config>
使用代码:
package com.dbhelp;
import java.sql.SQLException;
import com.mchange.v2.c3p0.ComboPooledDataSource;
public class DBUtils_C3P0_2 {
public static void main(String[] args) {
ComboPooledDataSource cpds = new ComboPooledDataSource();
try {
for(int i = 0; i < 10; i++) {
System.out.println(cpds.getConnection());
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}