DBCP的使用步骤
步骤一:
导包,使用第三方的道具,必须导入相应的jar包。

一般需要导入两个jar包:
  -commons-dbcp-1.x.jar包
  -commons-pool-1.x.x.jar包

步骤二:

使用代码~看看下面代码的演示吧

/*
* 采用DBCP连接池技术,管理连接
*/ public class DBUtil2 { private static BasicDataSource ds; //为不同线程管理连接
private static ThreadLocal<Connection> t1; static{ try{
//从配置文件读取数据库连接的参数
Properties prop=new Properties();
InputStream is=DBUtil2.class.getClassLoader().getResourceAsStream("config2.properties"); prop.load(is);
is.close(); //初始化连接池
ds=new BasicDataSource(); //加载数据库
ds.setDriverClassName(prop.getProperty("driver")); //设置url
ds.setUrl(prop.getProperty("url")); //设置数据库用户名和密码
ds.setUsername(prop.getProperty("user"));
ds.setPassword(prop.getProperty("psw")); //其他关于连接数量等等的参数的设置
ds.setInitialSize(Integer.parseInt(prop.getProperty("initsize")));
/*此方法不支持已经不支持了?
* ds.setMaxActive(Integer.parseInt(prop.getProperty("maxactive")));
*/
ds.setMaxWaitMillis(Integer.parseInt(prop.getProperty("maxwait")));
ds.setMaxIdle(Integer.parseInt(prop.getProperty("maxidle")));
ds.setMinIdle(Integer.parseInt(prop.getProperty("minidle"))); //初始化线程本地TreadLocal
t1=new ThreadLocal<Connection>(); }catch(Exception e){
e.printStackTrace();
} } public static Connection getConnection() throws SQLException{
Connection conn=ds.getConnection();//从连接池中取一个连接 t1.set(conn);
return conn;
} public static void closeConnection(){
try{
Connection conn=t1.get();
if(conn!=null){ //恢复连接为自动提交事务(此处用于事务处理)
conn.setAutoCommit(true); /*
* 通过连接池获取的Connection的close()方法,
* 实际上并没有将连接关闭,而是将该连接归还。
*/
conn.close();
t1.remove();
}
}catch(Exception e){
               e.printStackTrace();
               }
} }

PS:

此处亦用到了ThreadLocal(线程本地)的知识,请参照以下连接

http://www.cnblogs.com/dreamroute/p/5034726.html

采用DBCP连接池技术管理连接的更多相关文章

  1. JDBC实例--JDBC连接池技术解密,连接池对我们不再陌生

    一.为什么我们要用连接池技术? 前面的数据库连接的建立及关闭资源的方法有些缺陷.统舱传统数据库访问方式:一次数据库访问对应一个物理连接,每次操作数据库都要打开.关闭该物理连接, 系统性能严重受损. 解 ...

  2. 线程池-连接池-JDBC实例-JDBC连接池技术

    线程池和连接池   线程池的原理:     来看一下线程池究竟是怎么一回事?其实线程池的原理很简单,类似于操作系统中的缓冲区的概念,它的流程如下:先启动若干数量的线程,并让这些线程都处于睡眠状态,当客 ...

  3. 走进JavaWeb技术世界3:JDBC的进化与连接池技术

    走进JavaWeb技术世界3:JDBC的进化与连接池技术 转载公众号[码农翻身] 网络访问 随着 Oracle, Sybase, SQL Server ,DB2,  Mysql 等人陆陆续续住进数据库 ...

  4. 开源的连接池技术DBCP和C3P0

    概述: Sun公司约定: 如果是连接池技术,需要实现一个接口! javax.sql.DataSource;   相关jar包和资料下载 1.1  DBCP连接池: l  DBCP 是 Apache 软 ...

  5. 解密httpclient,dbcp,jedis,c3p0,druid,okhttp都在使用的连接池技术

    最近在连接池上面栽了个跟头(参见这里),引起我对池技术的强烈关注,这几天总结了一下很多场景都会使用的池技术: 池概念 pool,中文翻译为水池,但是在英文中,还有一种解释是 an organizati ...

  6. Mybatis 的连接池技术

    我们在前面的 WEB 课程中也学习过类似的连接池技术,而在 Mybatis 中也有连接池技术,但是它采用的是自 己的连接池技术.在 Mybatis 的 SqlMapConfig.xml 配置文件中,通 ...

  7. 2017.10.21 Java中的数据源与连接池技术

    1.数据源技术就是预先建立好一定的数量的数据库连接,并将这些连接保存在连接池中,有连接池负责对这些数据库连接管理,当访问数据库时,只需要从连接池中取出有空闲状态的数据库连接:当程序访问数据库结束时,释 ...

  8. DBCP连接池与c3p0连接池

    1.   DBCP连接池

  9. Java Redis系列3(Jedis的使用+jedis连接池技术)

    Jedis的使用 什么是Jedis? 一款Java操作redis数据库的工具 使用步骤 1.下载redis所需的java包 2.使用步骤 import org.junit.Test; public c ...

随机推荐

  1. ecshop后台增加|添加商店设置选项和使用方法详解

    有时候我们想在Ecshop后台做个设置.radio.checkbox 等等来控制页面的显示,看看Ecshop的设计,用到了shop_config这个商店设置功能 Ecshop后台增加|添加商店设置选项 ...

  2. 【krpano】krpano xml资源解密(破解)软件说明与下载(v1.3)

    欢迎加入qq群551278936讨论krpano技术以及获取最新软件.   该软件已经不再维护,现在已经被KRPano资源分析工具取代,详情参见 http://www.cnblogs.com/reac ...

  3. 【转】AWK 简明教程

    本文转自:http://coolshell.cn/articles/9070.html 有一些网友看了前两天的<Linux下应该知道的技巧>希望我能教教他们用awk和sed,所以,出现了这 ...

  4. node06-path

    目录:node01-创建服务器 node02-util node03-events node04-buffer node05-fs node06-path node07-http node08-exp ...

  5. sql单表中某一字段重复,取最近3条或几条数据

    order by a.uid,a.id; sql查询语句,针对需求:一个表中某一字段是有重复的数据,针对该字段相同的值只取最近的3条或要求的几条: --记录铭心!

  6. MyBatis持久层框架使用总结

    MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis . 2 ...

  7. google 在线代理浏览

    谷歌访问不了,你又N多方法,比如搭建VPN,买VPN,或查找google多个IP访问, 或通过第三方反代理网站访问, 或通过客户端代理(类似goagent)等 下面罗列出可以访问google的几个代理 ...

  8. [Unity3D]Unity资料大全免费分享

     都是网上找的连七八糟的资料了,整理好分享的,有学习资料,视频,源码,插件……等等 东西比较多,不是所有的都是你需要的,可以按  ctrl+F 来搜索你要的东西,如果有广告,不用理会,关掉就可以了,如 ...

  9. Codeforces Round #363 (Div. 2)

    A题 http://codeforces.com/problemset/problem/699/A 非常的水,两个相向而行,且间距最小的点,搜一遍就是答案了. #include <cstdio& ...

  10. php 执行计划任务方式之 linux crontab 执行命令

    一.crond简介 crond 是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务 工具,并且会自动启动c ...