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. Proj.4坐标系统创建参数

    Proj.4坐标系统创建参数 本文由乌合之众lym瞎编,欢迎转载blog.cnblogs.net/oloroso 本文原文地址(https://github.com/OSGeo/proj.4/wiki ...

  2. 网络流n题 题解

    学会了网络流,就经常闲的没事儿刷网络流--于是乎来一发题解. 1. COGS2093 花园的守护之神 题意:给定一个带权无向图,问至少删除多少条边才能使得s-t最短路的长度变长. 用Dijkstra或 ...

  3. Linux高并发机制——epoll模型

    epoll是一个特别重要的概念,常常用于处理服务端的并发问题.当服务端的在线人数越来越多,会导致系统资源吃紧,I/O效率越来越慢,这时候就应该考虑epoll了.epoll是Linux内核为处理大批句柄 ...

  4. nodejs开发指南demo

    由于手上拿的教程是2012年出版的,到如今已历经N个版本,所以在写代码时报过一堆错.这是解决错误后的版本. 源码下载

  5. XmlException: 名称不能以“<”字符(十六进制值 0x3C)开头

    svn 版本冲突引起的: 产看config 文件里面的内容是否冲突,这个问题可能和代码无关

  6. SQL Server 日期和时间函数

    http://www.cnblogs.com/adandelion/archive/2006/11/08/554312.html 1.常用日期方法(下面的GetDate() = '2006-11-08 ...

  7. 出现个Expression(str != NULL)

    CPrimerPlus的11章复习题10:编写个函数,其参数为一个字符串指针,返回一个指针,返回的指针指向字符串中第一个空格的位置(如果没有空格就返回空指针) #include <stdio.h ...

  8. Spring实例化Bean的三种方式及Bean的类型

    1.使用类构造器实例化  [默认的类构造器] <bean id=“orderService" class="cn.itcast.OrderServiceBean"/ ...

  9. iOS //清除本地缓存

    //清除本地缓存 -(void)clearCache{ dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT ...

  10. Android之EACCES (Permission denied)与Permission denied异常探密

    话说,Accipiter君,最近又开始怒学Android了,记得刚开始还是09年学的,现在的手机还是华为出的最早的一款Android手机C8500,那时候就想好好学习Android,赚点小钱,可是~~ ...