DBCP(DataBase Connection Pool)是一个开源的数据源工具,实际开发直接使用就行了

导入需要的jar包,数据库使用mysql测试

aaarticlea/png;base64,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" alt="" />

配置文件就是一个properties文件,key-value值按规范写就行了

driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/blogs_stu
username=root
password=
#初始化连接数
initialSize=10
#最大连接数
maxActive=50
#最大空闲连接
maxIdle=20
#最小空闲连接
minIdle=5
//超时等待时间,单位为毫秒
maxWait=60000 #附带的连接属性
connectionProperties=useUnicode=true;characterEncoding=utf8
#事物默认自动提交
defaultAutoCommit=true
#设置数据库是否为只读,不设置表示否
defaultReadOnly=
#设置事物的隔离级别。可选值NONE,READ_UNCOMMITTED,READ_COMMITTED,REPEATABLE_READ,SERIALIZABLE
#一般都是选REPEATABLE_READ,能避免脏读,不可重复读,但可能会虚读(为了性能这点牺牲还是值得的)
defaultTransactionIsolation=REPEATABLE_READ

工具类DBCPUtil

public class DBCPUtil {
private static DataSource ds;
static{
try {
InputStream is=DBCPUtil.class.getClassLoader().getResourceAsStream("dbcpconfig.properties");
Properties p=new Properties();
p.load(is);
ds=BasicDataSourceFactory.createDataSource(p);
} catch (Exception e) {
e.printStackTrace();
}
}
public static Connection getConnection(){
try {
return ds.getConnection();
} catch (SQLException e) {
e.printStackTrace();
}
return null;
}
public static void release(Connection conn,Statement stmt,ResultSet rs){
if(conn!=null){
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
conn=null;
}
if(stmt!=null){
try {
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
stmt=null;
}
if(rs!=null){
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
rs=null;
}
}
}

测试下打印一下该Connection对象,会发现其实该工具就是使用了一个包装类包装了原有的Connection接口实现类,

扩展了close方法,以实现将用完的Connection对象放回连接池中

public class Test6{
public static void main(String[] args) throws SQLException {
Connection conn=DBCPUtil.getConnection();
System.out.println(conn.getClass().getName());
}
}

aaarticlea/png;base64,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" alt="" />

所以如果调用DBCPUtil中的close方法其实是调用包装类中扩展的close方法,该方法将Connection对象放回连接池。

DBCP数据源的使用的更多相关文章

  1. DBCP数据源连接池实现原理分析

    前些天在调试公司系统的时候发现这样的一个问题:mysql数据库服务停止一段时间后再次重启后吗,tomcat服务无法请求数据库服务,调试了半天对这个问题进行定位解决,期间也搞了很多有关mysql数据库的 ...

  2. JDBC 学习笔记(三)—— 数据源(数据库连接池):DBCP数据源、C3P0 数据源以及自定义数据源技术

    本文目录:        1.应用程序直接获取连接的缺点(图解)        2.使用数据库连接池优化程序性能(图解)        3.可扩展增强某个类方法的功能的三种方式        4.自定 ...

  3. DBCP数据源

    DBCP数据源是Apache软件基金组织下的开源连接池实现,需要两个jar文件:Commons-dbcp.jar 连接池的实现和Commons-pool.jar 连接池实现的依赖库

  4. CP30,DBCP数据源配置

    Spring中 CP30数据源配置 <!-- 加载属性文件 01--> <bean id= "propertyConfigurer" class="or ...

  5. dbcp数据源连接池

    一.数据源连接池 我们之前利用jdbc连接数据库,每次都要创建连接对象,销毁连接对象,如果并发访问量比较大,这样肯定比较辣 浪费数据库的效率,我们可以像之前mybatis中缓存查询到的数据一样,可以把 ...

  6. dbcp数据源配置杂谈

    <!-- 数据源1 --> #驱动信息(driver, url, username, password)driverClassName=net.sourceforge.jtds.jdbc. ...

  7. 最新版本的DBCP数据源配置

    弄了我一下午,把该加的包都加进去了还是没用,后来把DBCP的包打开来看看才发现路径不对.配置如下: <!-- 使用dbcp配置数据源 --> <bean id="dataS ...

  8. dbcp数据源配置

    <bean id="dbcpDataSource"  class="org.apache.commons.dbcp.BasicDataSource" de ...

  9. DBCP数据源使用

    DBCP:DataBase Connection Pool 1.须要的jar:commons-dbcp.jar  commons-pool.jar 2.把DBCP的配置文件(dbcpconfig.pr ...

随机推荐

  1. DeviceIoControl方式 sys和exe通信

        常识: IRP:I/O Request Package  即输入输出请求包 exe和sys通信时,exe会发出I/O请求.操作系统会将I/O请求转化为相应的IRP数据, 不同类型传递到不同的d ...

  2. 【译】TensorFlow Python Docs 之 overview

    Overview 综述 TensorFlow has APIs available in several languages both for constructing and executing a ...

  3. 【ADO.Excel】ADO获取excel的Sheet集合

    using (OleDbConnection connection = new OleDbConnection(GetConnectionString())) { connection.Open(); ...

  4. WampServer Mysql配置

    WAMP:Windows下的Apache+Mysql+Perl/PHP/Python,一组常用来搭建动态网站或者服务器的开源软件.可点击此处下载WampServer,然后,按照提示安装WAMP.需要说 ...

  5. 什么时候用spring

    论公司spring的滥用   这个公司每个项目用不同的一套开发框架,实在忍不住拿一个出来说说事.

  6. 常用PHP正则表达式

    获取所有图片网址preg_match_all(“/ src=(\”|\’){0,}(http:\/\/(.+?))(\”|\’|\s|>)/is”,$text,$img); 匹配中文字符的正则表 ...

  7. launch failed.Binary not found

    1.在eclipse官网中下载已经集成了CDT的eclipse.(http://www.eclipse.org/downloads/download.php?file=/technology/epp/ ...

  8. Embedded Linux Primer----嵌入式Linux基础教程--导论

    第一章 导论 在这一章里(将要学习到) 为什么是Linux 嵌入式Linux现状 开源和GPL(译者:通用公共许可证) 标准和有关团体 本章总结 放弃专有操作系统正在许多传统嵌入式操作系统公司引起一阵 ...

  9. 通过Shell脚本读取properties文件中的参数时遇到\r换行符的问题

    今天在编写微服务程序启动脚本的时候,遇到一个比较奇葩的问题,下面给出具体描述: 目标:通过读取maven插件打包时生成的pom.properties文件,获取里面的应用名称和应用版本号,然后拼接得到s ...

  10. javascript 数组方法解析

    测试数组:testArrayA = ['a','b','c','d','e'] , testArrayB = [2,3,6,1] 1.删除数组最后一项(pop()): 返回删除那一项的值:var po ...