dbcp druid mysql_dbcp、c3p0、druid三种数据库连接池的用法

dbcp、c3p0、druid三种数据库连接池的用法

dbcp

1.在maven项目中,pom.xml文件中添加dbcp依赖,版本可在maven官网查找最新版本。

commons-dbcp

commons-dbcp

1.4

2.在resources目录下创建对应的dbcp.properties文件,进行相应的参数配置,参数除了上面固定的四个,其他可查阅资料查找你所需要的参数进行配置。

driver=com.mysql.jdbc.Driver

url=jdbc:mysql://localhost:3306/jdbc

user=root

password=gzq000913

maxActive=150

minIdle=5

maxIdle=20

initialSize=30

logAbandoned=true

removeAbandoned=true

removeAbandonedTimeout=10

maxWait=1000

timeBetweenEvictionRunsMillis=10000

numTestsPerEvictionRun=10

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官网查找最新版本。

com.mchange

c3p0

0.9.5.5

2.在resources目录下创建对应的c3p0-config.xml文件,进行相应的参数配置,其他可查阅资料查找你所需要的参数进行配置。

com.mysql.jdbc.Driver

jdbc:mysql://localhost:3306/jdbc

root

gzq000913

10

10

2

2

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官网查找最新版本。

com.alibaba

druid

1.1.21

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();

}

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值