当前位置:七道奇文章资讯编程技术Java编程
日期:2011-03-22 16:14:00  来源:本站整理

研究解析JDBC技术在数据库衔接池上的操纵[Java编程]

赞助商链接



  本文“研究解析JDBC技术在数据库衔接池上的操纵[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

近些年来,随着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地址,但具有差别用户名和密码的数据库衔接信息.


  以上是“研究解析JDBC技术在数据库衔接池上的操纵[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:

  • 研究解析JDBC技术在数据库衔接池上的操纵
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .