Java数据库连接池技术

原创 2004年06月16日 15:21:00

在执行数据库SQL语句时,我们先要进行数据连接;而每次创建新的数据库的连接要消耗大量的资源,这样,大家就想出了数据库连接池技术。它的原理是,在运行过程中,同时打开着一定数量的数据库连接,形成数据连接池,当需要用到数据连接时,就从中取出一个连接,完成某些SQL操作后,系统自动回收,以供其它用户(或进程)调用。

 <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

我们知道,java标准的java.sql.Connection表示一个数据连接。我们封装了这个类,形成自己的数据库连接池。为了说明方便,这里用实际的类来显示:

DBConnectionPool  真正的数据连接池

DBConnectionManager  对多个池进行管理

<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />CSDN_Dev_Image_2004-6-15831232.emz 

 CSDN_Dev_Image_2004-6-15831234.emz之间的关系如下:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

实际执行过程:

1)        新建一个DBConnectionManager类的实例。

2)        然后调用DBConnectionManager. CreatePool()创建一个连接池,并把这个连接池加入到poolsHasthTable中。(这种过程可执行多次,对应不同的数据连接,可能是sql2k的,也可能是oracle的,但生成的DBConnectionPool都要放到pools中进行统一管理,用并用一个名字与相应的DBConnectionPool对应起来)

3)        当需要数据连接时,首先得到一个DBConnectionPool,然后从DBConnectionPool中看有没有空闲的连接,如果有,则使用。如果没有,显没过最大连接数,则创建一个Connection连接,并返回这上连接。

4)        如果某个连接使用完毕,则调用DBConnectionManager.freeConnection(String name, Connection con),它又调用DBConnectionPool. freeConnection(Connection con),此时,连接并不真正释放,而是把这个暂时不用的Connection放到DBConnectionPoolfreeConnections数组中,同时,通知其它正在等待连接的线程。这样,以后要用时,就不用再新建Connection

java综合技术分享

1:心跳机制 1.1心跳包机制   跳包之所以叫心跳包是因为:它像心跳一样每隔固定时间发一次,以此来告诉服务器,这个客户端还活着。事实上这是为了保持长连接,至于这个包的内容,是没有什么特别规定的,...
  • zc529739024
  • zc529739024
  • 2017年02月17日 19:01
  • 1529

Java技术体系简介

2017年6月25日
  • zt15732621796
  • zt15732621796
  • 2017年06月25日 23:36
  • 360

java常用技术汇总

转载:http://lj6684.iteye.com/blog/895010 最近在网上查资料碰到好多没接触过的技术,先汇总在这里备用,以后慢慢吸收   1. JNA ...
  • An342647823
  • An342647823
  • 2014年09月15日 10:01
  • 7663

Java三种技术架构

Java语言的三种技术架构:
  • weixin_36416990
  • weixin_36416990
  • 2016年10月18日 14:24
  • 1507

Java爬虫技术

Jsoup解析html方法,通常被人称之为爬虫技术。(个人认为可能是返回的数据,只有一小部分是我们需要的,造成了数据 的冗余,和网络延迟)。 1,下载Jsoup架包,小编在网上找了一个资源下载jsou...
  • wangsongbin893603021
  • wangsongbin893603021
  • 2016年10月21日 16:56
  • 1184

java缓存技术的介绍

一、什么是缓存 1、Cache是高速缓冲存储器 一种特殊的存储器子系统,其中复制了频繁使用的数据以利于快速访问 2、凡是位于速度相差较大的两种硬件/软件之间的,用于协调两者数据传输速度差异的结构,...
  • baidu_33497625
  • baidu_33497625
  • 2016年03月04日 11:57
  • 34372

JAVA技术体系

1. JAVA技术体系 1.1 Java程序员 ·高级特性 反射、泛型、注释符、自动装箱和拆箱、枚举类、可变参数、可变返回类型、增强循环、静态导入 ·核心编程 IO、多线程、实体类、...
  • Minus_God
  • Minus_God
  • 2016年02月26日 09:59
  • 1763

Java程序员,最常用的20%技术有哪些?

Java程序员,最常用的20%技术有哪些? 北京八维 2016-10-21 14:19 我听说编程语言,经常使用的是其中20%的技术。在Java这门语言中,这20%包括哪些内容?参...
  • agzhchren
  • agzhchren
  • 2016年12月18日 13:40
  • 2383

Java技术大牛之路

打个比方吧,这位牛人23岁毕业,做了两年嵌入式C编程,25岁时,突然对Java的优雅设计情有独钟,而正好这时,公司有个Java项目,Java技术之旅开始了。 1、最开始三个月,开始接触Java,比如接...
  • zjh_1110120
  • zjh_1110120
  • 2016年05月21日 10:18
  • 3637

Java技术——架构养成计划

—编程基础— 1、Java常识:历史、特点、工作原理、运行环境JRE、开发工具(Eclipse或MyEclipse/NetBeans) 2、Java开发环境:JDK (Java 语言的软件开发工具...
  • nowadaysall
  • nowadaysall
  • 2016年12月25日 17:36
  • 584
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Java数据库连接池技术
举报原因:
原因补充:

(最多只允许输入30个字)