研究分析JDBC技术在数据库连接池上的应用

近年来,随着Internet/Intranet建网技术的飞速发展和在世界范围内的迅速普及,计算机应用程序已从传统的桌面应用转到Web应用。基于B/S(Browser/Server)架构的3层开发模式逐渐取代C/S(Client/Server)架构的开发模式,成为开发企业级应用和电子商务普遍采用的技术。在Web应用开发的早期,主要使用的技术是CGI?ASP?PHP等。之后,Sun公司推出了基于Java语言的Servlet+Jsp+JavaBean技术。相比传统的开发技术,它具有跨平台?安全?有效?可移植等特性,这使其更便于使用和开发。

Java技术应用程序访问数据库的基本原理

在Java语言中,JDBC(Java DataBase Connection)是应用程序与数据库沟通的桥梁,

即Java语言通过JDBC技术访问数据库。JDBC是一种“开放”的方案,它为数据库应用开发人员?数据库前台工具开发人员提供了一种标准的应用程序设计接口,使开发人员可以用纯Java语言编写完整的数据库应用程序。JDBC提供两种API,分别是面向开发人员的API和面向底层的JDBC驱动程序API,底层主要通过直接的JDBC驱动和JDBC-ODBC桥驱动实现与数据库的连接。

一般来说,Java应用程序访问数据库的过程是:

①装载数据库驱动程序;

②通过JDBC建立数据库连接;

③访问数据库,执行SQL语句;

④断开数据库连接。

JDBC作为一种数据库访问技术,具有简单易用的优点。但使用这种模式进行Web应用

程序开发,存在很多问题:首先,每一次Web请求都要建立一次数据库连接。建立连接是一个费时的活动,每次都得花费0.05s~1s的时间,而且系统还要分配内存资源。这个时间对于一次或几次数据库操作,或许感觉不出系统有多大的开销。可是对于现在的Web应用,尤其是大型电子商务网站,同时有几百人甚至几千人在线是很正常的事。在这种情况下,频繁的进行数据库连接操作势必占用很多的系统资源,网站的响应速度必定下降,严重的甚至会造成服务器的崩溃。不是危言耸听,这就是制约某些电子商务网站发展的技术瓶颈问题。其次,对于每一次数据库连接,使用完后都得断开。否则,如果程序出现异常而未能关闭,将会导致数据库系统中的内存泄漏,最终将不得不重启数据库。还有,这种开发不能控制被创建的连接对象数,系统资源会被毫无顾及的分配出去,如连接过多,也可能导致内存泄漏,服务器崩溃。

数据库连接池(connection pool)的工作原理

1、基本概念及原理

由上面的分析可以看出,问题的根源就在于对数据库连接资源的低效管理。

我们知道,对于共享资源,有一个很著名的设计模式:资源池(Resource Pool)。该模式正是为了解决资源的频繁分配?释放所造成的问题。为解决上述问题,可以采用数据库连接池技术。数据库连接池的基本思想就是为数据库连接建立一个“缓冲池”。预先在缓冲池中放入一定数量的连接,当需要建立数据库连接时,只需从“缓冲池”中取出一个,使用完毕之后再放回去。我们可以通过设定连接池最大连接数来防止系统无尽的与数据库连接。更为重要的是我们可以通过连接池的管理机制监视数据库的连接的数量?使用情况,为系统开发?测试及性能调整提供依据。

2、服务器自带的连接池

JDBC的API中没有提供连接池的方法。一些大型的WEB应用服务器如BEA的WebLogic和IBM的WebSphere等提供了连接池的机制,但是必须有其第三方的专用类方法支持连接池的用法。

连接池关键问题分析

1、并发问题

为了使连接管理服务具有最大的通用性,必须考虑多线程环境,即并发问题。这个问题相对比较好解决,因为Java语言自身提供了对并发管理的支持,使用synchronized关键字即可确保线程是同步的。使用方法为直接在类方法前面加上synchronized关键字,如:

public synchronized Connection getConnection()

2、多数据库服务器和多用户

对于大型的企业级应用,常常需要同时连接不同的数据库(如连接Oracle和Sybase)。如何连接不同的数据库呢?我们采用的策略是:设计一个符合单例模式的连接池管理类,在连接池管理类的唯一实例被创建时读取一个资源文件,其中资源文件中存放着多个数据库的url地址()?用户名()?密码()等信息。如tx.url=172.21.15.123:5000/tx_it,tx.user=yang,tx.password=yang321。根据资源文件提供的信息,创建多个连接池类的实例,每一个实例都是一个特定数据库的连接池。连接池管理类实例为每个连接池实例取一个名字,通过不同的名字来管理不同的连接池。

对于同一个数据库有多个用户使用不同的名称和密码访问的情况,也可以通过资源文件处理,即在资源文件中设置多个具有相同url地址,但具有不同用户名和密码的数据库连接信息。

时间: 2024-08-31 14:16:27

研究分析JDBC技术在数据库连接池上的应用的相关文章

代码分析-ASP.NET技术中数据库连接代码解释

问题描述 ASP.NET技术中数据库连接代码解释 你好,我的数据库里面有一个Thing表,下面是一段与数据库连接的代码,帮忙解释一下,谢谢 DataList1.DataSource = ThingManager.Get(0 5 0 string.Empty); DataList1.DataBind(); 解决方案 DataList1控件的数据源指定为 ThingManager.Get(0 5 0 string.Empty)获得的DataSet或数据:DataList1.DataBind()就是D

简介Java中的JDBC技术

JDBC是一种可用于执行SQL语句的JavaAPI(ApplicationProgrammingInterface应用程序设计接口).它由一些Java语言编写的类和界面组成.JDBC为数据库应用开发人员.数据库前台工具开发人员提供了一种标准的应用程序设计接口,使开发人员可以用纯Java语言编写完整的数据库应用程序. 一.ODBC到JDBC的发展历程 说到JDBC,很容易让人联想到另一个十分熟悉的字眼"ODBC".它们之间有没有联系呢?如果有,那么它们之间又是怎样的关系呢? ODBC是O

sql server-jsp使用jdbc技术连接SQL Server2014时出现了一个问题,怎么解决?无法连接数据库

问题描述 jsp使用jdbc技术连接SQL Server2014时出现了一个问题,怎么解决?无法连接数据库 java.lang.ClassNotFoundException: com.microsoft.jdbc.sqlserver.SQLServerDriver 解决方案 SQL Server 连接JDBC时出现的问题jdbc连接sql server数据库问题分析jsp连接不上sql server数据库的问题分析 解决方案二: 下面是index.jsp首页. <%@ page language

基于JSP技术的数据库连接

js|数据|数据库|数据库连接     相对于基于传统的Client/Server模式的数据库系统,Web数据库系统采用三层浏览器/服务器结构(即网络浏览器/Web服务器/数据库服务器结构),具有极大的优势.Web数据库系统充分发挥了DBMS高效的数据存储与管理能力,以B/S模式为平台,将客户端统一为Web浏览器,为用户提供使用简便.内容丰富的数据库服务,已经成为Internet和Intranet提供的核心服务,为Internet上的电子商务提供技术支持.Web数据库系统的关键技术是Web与数据

JSP中使用Java的JDBC技术实现对数据库的各种操作

在JSP 中可以使用Java 的JDBC 技术,实现对数据库中表记录的查询.修改和删除等操作.JDBC 技术在JSP 开发中占有很重要的地位. JDBC(Java DataBase Connectivity)是Java 数据库连接API.简单地说, JDBC 能完成三件事: (1) 与一个数据库建立连接, (2) 向数据库发送SQL 语句, (3) 处理数据库返回的结果. JDBC 和数据库建立连接的一种常见方式是建立起一个JDBC─ODBC 桥接器.由于ODBC 驱动程序被广泛的使用,建立这种

国家环保物联网技术研究应用工程技术中心即将验收

[导读] 国家环境保护物联网技术研究应用(无锡)工程技术中心于2014年7月由国家环境保护部(环函[2014]130号)批准建设,建设期为两年,目前已进入验收阶段. 助力环保物联网发展加速 --国家环保物联网技术研究应用工程技术中心即将验收 国家环境保护物联网技术研究应用(无锡)工程技术中心于2014年7月由国家环境保护部(环函[2014]130号)批准建设,建设期为两年,目前已进入验收阶段.该中心以无锡高科物联网科技发展有限公司为依托,协作单位有:无锡物联网产业研究院.中国环境科学研究院.环境

安全专家浅谈恶意代码的研究分析(1)

[51CTO.com 专家特稿]国外著名的某安全公司指出:2007年互联网上传播的有记载的新型恶意程序(包括病毒,蠕虫,木马等)数目达2,227,415个,同2006年的结果(535,131个)相比翻升了四倍,恶意软件总数量达到354GB.许多反病毒专家 认为这些恶意软件的急速增加已经达到了一种很极 端的情况.恶意软件的 快速发展.广泛传播,以及新型化. 复杂化,使得展示出更强的破坏性和更多样的传播方式.2008年安全公司对于恶意软件的分析研究也将面临更大的挑战.叶子在本篇文章中将带领大家初步了

孟建伟,专业研究互联网电视技术和运营

人物介绍: 孟建伟:浙江TAISHAN科技公司CEO,专业研究互联网电视技术和运营 一玄:深圳市WACOSOFT软件科技有限公司CEO. 本周的自媒体老友记的话题是互联网电视,为什么是这个话题,这是我出差踏入杭州的土地上嗅触到的第一股硝烟味道. 在 手机 .平板.电脑这些移动终端的潜力逐渐露底之后,位于客厅的电视机成为各方厮杀的新战场.一台小小的电视机,如今却成为谷歌.乐视网.小米.百度.爱奇艺.阿里巴巴等一大批新兴互联网企业,与海信.长虹.TCL.创维等传统消费电子企业,两大阵营正面交锋的主战

JDBC技术总结(一)

版权声明:尊重博主原创文章,转载请注明出处哦~http://blog.csdn.net/eson_15/article/details/51308449 目录(?)[+] 1. JDBC简介         SUN公司为了简化.统一对数据库的操作,定义了一套Java操作数据库的规范,称之为JDBC,JDBC不能直接操作数据库,JDBC通过接口加载数据库的驱动,然后操作数据库.JDBC:Java Data Base Connectivity,它主要由接口组成.组成JDBC的2个包为java.sql