dbcp、c3p0、druid三种数据库连接池的用法
dbcp、c3p0、druid三种数据库连接池的用法
dbcp
1.在maven项目中,pom.xml文件中添加dbcp依赖,版本可在maven官网查找最新版本。
<dependency>
<groupId>commons-dbcp</groupId>
<artifactId>commons-dbcp</artifactId>
<version>1.4</version>
</dependency>
2.在resources目录下创建对应的dbcp.properties文件,进行相应的参数配置,参数除了上面固定的四个,其他可查阅资料查找你所需要的参数进行配置。
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/jdbc
user=root
password=gzq000913
<!--maxActive: 最大连接数量-->
maxActive=150
<!--minIdle: 最小空闲连接-->
minIdle=5
<!--maxIdle: 最大空闲连接-->
maxIdle=20
<!--initialSize:初始化连接-->
initialSize=30
<!--连接被泄露时是否打印-->
logAbandoned=true
<!--removeAbandoned: 是否自动回收超时连接-->
removeAbandoned=true
<!--removeAbandonedTimeout: 超时时间(以秒数为单位)-->
removeAbandonedTimeout=10
<!--maxWait: 超时等待时间以毫秒为单位 1000等于60秒-->
maxWait=1000
<!--在空闲连接回收器线程运行期间休眠的时间值,以毫秒为单位.-->
timeBetweenEvictionRunsMillis=10000
<!--在每次空闲连接回收器线程(如果有)运行时检查的连接数量 -->
numTestsPerEvictionRun=10
<!--1000 * 60 * 30 连接在池中保持空闲而不被空闲连接回收器线程-->
minEvictableIdleTimeMillis=10000
3.创建对应的DBCPPool类,加载dbcp.properties文件,创建对应的数据源,就可以使用了
import org.apache.commons.dbcp.BasicDataSource;
import org.apache.commons.dbcp.BasicDataSourceFactory;
import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.Properties;
/**
* DBCPPool类
*/
public class DBCPPool {
static{
//创建properties实例
Properties properties = new Properties();
try {
//加载dbcp.properties文件内容
properties.load(DBCPPool.class.getClassLoader().
getResourceAsStream("dbcp.properties"));
//用BasicDataSourceFactory创建数据源
DataSource dataSource = BasicDataSourceFactory.
createDataSource(properties);
//以下就是正常的连接使用
Connection connection = dataSource.
getConnection();
PreparedStatement pstat = connection.
prepareStatement
("show variables like 'basedir'");
ResultSet rs = pstat.executeQuery();
while (rs.next()){
String name = rs.getString("variable_name");
String value = rs.getString("value");
System.out.println(name + " " + value);
}
rs.close();
pstat.close();
connection.close();
} catch (Exception e) {
e.printStackTrace();
}
}
//主函数测试
public static void main(String[] args){
new DBCPPool();
}
}
c3p0
1.在maven项目中,pom.xml文件中添加c3p0依赖,版本可在maven官网查找最新版本。
<dependency>
<groupId>com.mchange</groupId>
<artifactId>c3p0</artifactId>
<version>0.9.5.5</version>
</dependency>
2.在resources目录下创建对应的c3p0-config.xml文件,进行相应的参数配置,其他可查阅资料查找你所需要的参数进行配置。
<?xml version="1.0" encoding="UTF-8"?>
<!--根标签 和文件名称一致-->
<c3p0-config>
<!--默认配置标签-->
<!--<default-config>-->
<!--可以指定名称进行配置 适用于多数据源场景-->
<named-config name="myC3p0">
<property name="driverClass">
com.mysql.jdbc.Driver</property>
<property name="jdbcUrl">
jdbc:mysql://localhost:3306/jdbc</property>
<property name="user">root</property>
<property name="password">gzq000913</property>
<!--初始化连接池的连接数量-->
<property name="initialPoolSize">10</property>
<!--最大可创建连接数-->
<property name="maxPoolSize">10</property>
<!--最小连接数量-->
<property name="minPoolSize">2</property>
<!--当没有空闲连接时 一次性创建的新连接数量-->
<property name="acquireIncrement">2</property>
<!--连接的最大空闲时间 如果一直未使用 则断掉此连接 如果配置为0 则永远不会断掉-->
<!--<property name="maxIdleTime">0</property>-->
</named-config>
<!--</default-config>-->
</c3p0-config>
3.创建对应的C3P0Pool类,用ComboPooledDataSource("myC3p0")创建对应名称的数据源,就可以使用了
import com.mchange.v2.c3p0.ComboPooledDataSource;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
/**
* C3P0Pool类
*/
public class C3P0Pool {
static {
//用ComboPooledDataSource获取数据源
ComboPooledDataSource dataSource = new ComboPooledDataSource("myC3p0");
try {
//下面就是正常使用
Connection connection = dataSource.
getConnection();
PreparedStatement pstat = connection.
prepareStatement
("show variables like 'basedir'");
ResultSet rs = pstat.executeQuery();
while (rs.next()){
String name = rs.getString("variable_name");
String value = rs.getString("value");
System.out.println(name + " " + value);
}
rs.close();
pstat.close();
connection.close();
} catch (Exception e) {
e.printStackTrace();
}
}
//主函数测试
public static void main(String[] args){
new C3P0Pool();
}
}
druid
druid是现在最普遍最好用的连接池,是阿里巴巴开源的,可以在github上搜索到它的使用文档以及源代码
1.在maven项目中,pom.xml文件中添加druid依赖,版本可在maven官网查找最新版本。
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.21</version>
</dependency>
2.在resources目录下创建对应的druid.properties文件,进行相应的参数配置,参数除了上面固定的四个,其他可查阅资料查找你所需要的参数进行配置。
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/jdbc
user=root
password=gzq000913
# 初始化大小
initialSize=5
# 最小空闲数
minIdle=10
# 最大活跃数
maxActive=20
# 获取连接的等待时间
maxWait=10000
# 间隔多长时间 检测是否关闭空闲连接 单位是毫秒
timeBetweenEvictionRunsMillis=2000
# 控制一个连接在资源池中 最大或最小的生存时间 单位也是毫秒
minEvictableIdleTimeMillis=600000
maxEvictableIdleTimeMillis=900000
3.创建对应的DruidPool类,加载druid.properties文件,创建对应的数据源,就可以使用了
import com.alibaba.druid.pool.DruidDataSourceFactory;
import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.Properties;
/**
*DruidPool类
*/
public class DruidPool {
static {
//创建properties实例
Properties properties = new Properties();
try {
properties.load(DruidPool.class.
getClassLoader().
getResourceAsStream
("druid.properties"));
//用DruidDataSourceFactory创建数据源
DataSource dataSource = DruidDataSourceFactory.
createDataSource(properties);
//以下就是正常使用了
Connection connection = dataSource.
getConnection();
PreparedStatement pstat = connection.
prepareStatement
("show variables like 'basedir'");
ResultSet rs = pstat.executeQuery();
while (rs.next()){
String name = rs.getString("variable_name");
String value = rs.getString("value");
System.out.println(name + " " + value);
}
rs.close();
pstat.close();
connection.close();
} catch (Exception e) {
e.printStackTrace();
}
}
//主函数测试
public static void main(String[] args){
new DruidPool();
}
}

浙公网安备 33010602011771号