北京联合大学应用文理学院学年论文专业信息与计算科学论文题目JAVA数据库连接池技术在文化创业产业中的应用姓名张逊班级2009指导教师逯燕玲实践时间20011年12月—2012年2月北京联合大学应用文理学院学年论文一、学年论文的目的和任务《学年论文》是信息与计算科学专业学生必修的专业实践课程,属于人才培养的重要实践性教学环节之一,是培养学生创新精神和钻研能力的重要手段。在开展了专业集中实践教学模块(一)、(二)、(三)的基础上,要求学生发现一个实际问题,经过调研、收集资料、分析问题并努力解决问题的过程,使学生学会独立提出问题并解决所提出的问题。学年论文的撰写培养学生做学问的严谨和规范,学生用所学的本专业知识进行实际调研和分析,不仅可使学到的基础知识和技能得到进一步理解和强化,而且有助于培养学生获取知识的能力和分析、概括总结的能力,也为毕业论文的写作打下一定的基础。二、学年论文的内容与要求(一)选题要求学年论文的选题要求是一人一题,主要由学生自主选题,也可由教师指导选题。选题要新颖,具有一定的深度、难度与工作量。选题可从以下几个方面进行:(1)阐明本学科理论在实际应用中的一些问题;(2)探讨本学科中某些观念、热点问题或研究历史进程、预测其发展趋势;(3)阐述本学科领域发展进程中的重大事件和重要问题;(4)对专业课程中的某一部分内容进行讨论或研究。(二)学年论文要求(1)系统、完整地阐述论题所包含的问题,明确表达作者自己的观点与结论;(2)综合应用已学的专业理论与知识,融会贯通所掌握的资料;(3)学生通过结合几年的学习经历进行思考、选题、查阅资料最后写出论文;(4)要求学生撰写不少于3000字的论文,语言要求文理通顺,层次分明,表达较确切,格式符合规范;(5)参考文献要查阅5本参考书目和5篇学术论文以上,文中引用的需要标注。北京联合大学应用文理学院学年论文-1-摘要随着Internet/Intranet建网技术的飞速发展和在世界范围内的迅速普及,电子商务开始更加重要,商务网站吸引了大量的用户,访问量逐渐增大,导致了网站相应速度明显变慢甚至无法响应。所以商务网站管理应开始从程序设计方面,数据库的连接性能方面优化。JAVA语言的跨平台型、可移植性健全性在网络应用中有很明显的优势,采用JAVA语言为基础是解决连接数据库平静的很好的解决办法,可以使系统性能获得显著的提高。关键词:JAVAWEB数据库连接池优化设计方案1引言在基于Web的应用程序开发中,数据库支持下的Web页可以具有存储、搜索和智能处理等功能。数据库连接是一类重要的资源,连接数据库不仅要开销一定的通讯和内存资源,还必须完成用户认证、安全上下文配置这类任务,因而往往成为最耗时的操作。随着Web应用的不断深入、用户数量的增加以及Internet上用户请求的随机性,必然会出现并发的用户请求。客户端的并发请求会引起应用程序与数据库连接数的增加,从而使应用程序效率下降。这与人们对基于Web的系统具有足够的动态交互能力的要求产生了矛盾。为解决这一矛盾,除了需要选择配置高性能的服务器外,还应有高效的软件技术来支持。通过Web与数据库相结合也是构造高效Web应用不可缺少的内容,而Web访问数据库效率的高低,直接影响到系统的整体性能。2数据库连接池基本原理连接池技术就是预先建立一些连接放置于内存中以备使用,当程序中需要建立数据库连接时,并不需要直接向数据库连接器发出请求,而只需要从数据库连接池中取得所需要的连接;当应用程序使用完一个连接,并不从物理上关掉连接,而是将连接还回到连接池。[1]使用连接池技术的优点主要体现在以下方面:不用为每个用户请求建立新的连接,可以提高数据库访问的效率和整个应用程序的性能;不用重复为连接用户名、连接密码等数据库访问的细节编码,节省编程工作量;方便地控制连接到数据库的许可用户数,商业应用中在成本、安全性方面优势明显;在数据库系统更换时保证应用程序不用作大的调整。北京联合大学应用文理学院学年论文-2-3实现JAVA数据库连接池的途径3.1连接池的基本操作连接池一般由三部分组成:连接池的建立,连接池对连接的管理和连接池的关闭。(1)连接池的建立:建立连接池。首先建立一个静态连接池,所谓静态是指,池中的连接在系统初始化时就分配好了,并且不能随意关闭。在Java中用Vector可以方便地构建连接池4。(2)连接池对连接的管理:连接池的自管理。连接池管理策略是连接池机制的核心。当客户需要访问数据库时,不是直接同数据建立连接,而是向连接池申请一个连接[2]。同样,当客户访问数据库完毕,释放连接时,并不是直接关闭连接,而是向连接池释放连接。当客户应用向连接池请求数据库连接时,先查看池中是否有空闲连接,如有,则把空闲连接分配给客户,如池中没有空闲连接,则等待,直到有空闲连接分配给客户,此时该连接被多个用户复用。当客户释放连接时,唤醒所有等待连接的客户线程并作相应处理。如果连接释放后,没有等待连接的客户线程,则把它重新放回连接池中,并不关闭连接。由此可知,连接池能保证数据库连接的有效复用,避免频繁地建立、释放连接所带来的系统资源开销。[3](3)关闭连接池:当应用程序退出时,应关闭连接池,此时应把连接池建立时向数据库申请的连接对统一归还给数据库。3.2数据库连接池的设计方案连接池设计包括两部分:连接池的建立及对池中连接的分配和释放的管理。(1)连接池的建立:在系统初始化时,通过读取XML配置文件中的参数和对应取值,应用程序在内存中建立一个静态连接池。静态是指对于应用程序来说连接池是唯一的,连接池的参数配置也是确定的。当连接池对象被初始化后,池中已创建好一定数量的连接,且不能随意关闭它们,以后线程所使用的连接都是从连接池中获取的,这样就可以避免因连接随意的建立、关闭而造成的内存开销。(2)连接的分配于释放:当连接池建立后,如何设定连接池的管理机制成为接下来的关键问题。采用“ReferenceCounting”的设计模式,为每一个数据库连接设置一个引用计数,通过记录该连接的使用次数,决定其再次复用或是被释放。如图一所示。当有线程请求数据库连接时,首先查看连接池中的空闲队列,空闲队列用于存放未分配的连接。如果存在空闲连接就将其分配给该线程,同时注册到已分配的队列中,对应引用计数加1。若空闲队列为空,则查看当前所创建的连接数是否达到maxactive,如果未达到就创建一个新的连接给请求的线程;如果已达到maxactive,则等待连接的释放,当等待时间大于maxwait后仍没有连接释放,就返回请求失败的程序。当有线程释放数据库连接时,先查看该连接的引用计数是否超过了maxuse,如果超过就将其删除,同时检查当前连接池中的空闲队列,如果空闲队列中的连接数小于maxidle,就创建新连接到空闲队列,以保证有适量的连接备用;如果引用计数小于maxuse,就将连接归还空闲队列,以供再次使用。[4]北京联合大学应用文理学院学年论文-3-3.3连接池的优化(1)动态连接池模型:针对静态连接池的局限性,提出了动态连接池优化模型,通过动态地加载、修改、删除连接池,可以为不同类型的数据库同时创建连接池对象,实现灵活地配置连接池参数,使系统性能得到更大的优化。(2)连接池管理类:连接池管理类符合单例模式,即系统中只能有一个连接池管理类的实例。这个实例在创建后便一直运行,用于对多个连接池对象的管理,它提供以下功能:实例创建时装载并注册配置文件中的数据库的DBC驱动程序;根据配置文件中给定的信息创建连接池对象,每一个连接池对象都有一个名字;提供获取与释放给定连接池连接的接口;提供注册新连接池,修改、删除己有连接池的接口;设置运行日志。[5]引入连接池管理类主要是为了方便对多个连接池的使用和管理,如系统需要连接不同类型的数据库等。当应用程序创建一个连接池分配类对象,这个对象在创建时便获得了连接池管理类实例:通过该实例的创建可以在内存中加载配置文件中记录的所有数据库对应的连接池对象,在程序运行中,可以动态的修改连接池的参数,使系统能够根据应用程序的不同要求,灵活配置连接池中连接的最大空闲数和最大连接数等。4结束语Java的Web开发技术由于其平台无关性,功能强大,支持公司多,升级维护方便的优点,使得Java的Web技术将会有越来越广泛的应用。尽管Java技术越来越成熟,但是在利用该技术进行信息化管理系统的开发过程,仍存在一些不足。在使用Java进行与数据库有关的系统开发中,应用连接池技术能极大地减少数据库连接的建立和关闭。我在这里探讨了数据库连接池的基本模型和设计方案,并在静态连接池的基础上,通过设计连接池分配类和管理类来实现动态连接池的构建,并提出北京联合大学应用文理学院学年论文-4-了相应的动态连接池优化模型。在开发的基于web的部门办公数字化管理信息系统中应用了优化的连接池技术,降低了系统开销,极大地提高了数据库的访问效率。参考文献[1]张立仿,陈艳浩.基于Java的数据库连接池技术研究河南师范大学网络中心,河南新乡2009.[2]HorstannCS.Java2核心技术(卷Ⅱ):高级特性[M].朱志译.北京:机械工业出版社,2000.[3]周彩兰,陈才贤《基于Java和Web数据库连接池高效管理策略》武汉理工大学计算机科学与技术学院,2004.[4]罗荣,唐学兵.基于JDBC的数据库连接池的设计与实现[J].计算机工程,2004,30(9):9293.[5]邓万宇,张弛,郭曦.基于JDBC的数据库连接池高效管理策略[J].现代电子技术,2006(5):1114.[6]徐滨《基于WEB和JAVA的网络管理系统》宁夏职业技术学院,银川,2011。