java dbcp datasource,DataSource Java 官方 DBCP

这篇博客介绍了DBCP和C3P0两种数据库连接池的区别,强调了C3P0的自动回收空闲连接功能。文章提供了DBCP的基本使用代码,展示了如何配置和获取数据库连接,并通过属性文件创建DataSource。同时,讨论了相关配置参数的作用,如最大活动连接数、测试连接等。
摘要由CSDN通过智能技术生成

DBCP使用的比较少, 大多用 c3p0

c3p0与dbcp区别

dbcp没有自动回收空闲连接的功能

c3p0有自动回收空闲连接功能

基础使用, DBCP是用连接池实现的

BasicDataSource basicDataSource = new BasicDataSource();

basicDataSource.setDriverClassName("com.mysql.jdbc.Driver");

basicDataSource.setUrl("jdbc:mysql://127.0.0.1/mydb");

basicDataSource.setUsername("root");

basicDataSource.setPassword("root");

basicDataSource.setMaxActive(3);

try {

Connection connection1 = basicDataSource.getConnection();

Connection connection2 = basicDataSource.getConnection();

Connection connection3 = basicDataSource.getConnection();

System.out.println(connection1.hashCode());

System.out.println(connection2.hashCode());

System.out.println(connection3.hashCode());

connection3.close();

Connection connection4 = basicDataSource.getConnection();

System.out.println(connection4.hashCode()); // 输出同3

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

可以使用属性文件创建datasource

public void testProperties() {

Properties properties = new Properties();

try {

properties.load(DBCPTest.class

.getResourceAsStream("jdbc.properties"));

} catch (IOException e1) {

// TODO Auto-generated catch block

e1.printStackTrace();

}

try {

BasicDataSource basicDataSource = (BasicDataSource) BasicDataSourceFactory

.createDataSource(properties);

System.out.println(basicDataSource.getConnection());

//输出 : jdbc:mysql://127.0.0.1:3306/mysql, UserName=root@localhost, MySQL-AB JDBC Driver

} catch (Exception e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

属性对应设置方法, 源代码中对应

private final static String PROP_DEFAULTAUTOCOMMIT = "defaultAutoCommit";

private final static String PROP_DEFAULTREADONLY = "defaultReadOnly";

private final static String PROP_DEFAULTTRANSACTIONISOLATION = "defaultTransactionIsolation";

private final static String PROP_DEFAULTCATALOG = "defaultCatalog";

private final static String PROP_DRIVERCLASSNAME = "driverClassName";

private final static String PROP_MAXACTIVE = "maxActive";

private final static String PROP_MAXIDLE = "maxIdle";

private final static String PROP_MINIDLE = "minIdle";

private final static String PROP_INITIALSIZE = "initialSize";

private final static String PROP_MAXWAIT = "maxWait";

private final static String PROP_TESTONBORROW = "testOnBorrow";

private final static String PROP_TESTONRETURN = "testOnReturn";

private final static String PROP_TIMEBETWEENEVICTIONRUNSMILLIS = "timeBetweenEvictionRunsMillis";

private final static String PROP_NUMTESTSPEREVICTIONRUN = "numTestsPerEvictionRun";

private final static String PROP_MINEVICTABLEIDLETIMEMILLIS = "minEvictableIdleTimeMillis";

private final static String PROP_TESTWHILEIDLE = "testWhileIdle";

private final static String PROP_PASSWORD = "password";

private final static String PROP_URL = "url";

private final static String PROP_USERNAME = "username";

private final static String PROP_VALIDATIONQUERY = "validationQuery";

private final static String PROP_VALIDATIONQUERY_TIMEOUT = "validationQueryTimeout";

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值