Web数据库访问技术研究论文.doc_第1页
Web数据库访问技术研究论文.doc_第2页
Web数据库访问技术研究论文.doc_第3页
Web数据库访问技术研究论文.doc_第4页
Web数据库访问技术研究论文.doc_第5页
免费预览已结束,剩余32页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

目 录摘要:1第一章 引言21.1 研究背景21.2 研究现状21.2.1 Web动态技术现状21.2.2 Web数据库现状31.3 论文的研究方向4第二章 相关技术52.1 JSP技术52.2 JSP数据库连接技术62.2.1 JDBC(JavaBean)62.2.2数据连接缓冲池10第三章 分析设计143.1 课题整体设计思路143.1.1 JSP页面设计思路143.1.2 JSP数据库连接技术设计思路163.1.3 数据库设计思路163.2 设计注意点16第四章 功能实现174.1系统运行环境174.1.1 JSP容器174.1.2 数据库174.2 开发工具174.2.1 JCreator Pro v2.5174.2.2 Macromedia Dreamweaver MX 2004184.3 详细设计19第五章 数据分析比较225.1 Oracle数据库数据分析225.2 MS SQL Server 2000 数据库数据分析265.3 My SQL 数据库数据分析30第六章 总结34参考文献35致谢3636基于JSP的Web数据库的访问技术的研究摘要:介绍了用JSP开发动态网站的优势及动态网站与后台数据库交换数据的速度、数据的安全性,即动态网站的性能均取决于JSP与Web数据库连接这一关键技术,给出了JSP通过JDBC与Web数据库的连接方法以及对数据库的基本操作,同时给出JSP在Windows环境下应用JDBC(JavaBeans)组件来具体实现与Oracle,SQL Server2000,MySQL数据库的连接及基本操作的实例。关键词:JSP;Web数据库;JDBC;JavaBeans;连接池Research on Access Technology to WEB Database Based on JSPAbstract:Is it develop with JSP dynamic advantage and dynamic between website and backstage supporter database of website exchange speed , security of datum of data to recommend, namely the performance of dynamic websites depends on JSP connects this key technology with Web database , provide JSP and connect the method and basic operation to the database with Web database one through JDBC, provide JSP use JDBC (JavaBeans ) package come to concrete realizing and Oracle under the environment of Windows at the same time, SQL Server2000, the connection of MySQL database and instance operated basically.Keywords:JSP; Web Database ; JDBC; JavaBeans; Connection Pool第一章 引言1.1 研究背景随着信息时代的到来,信息在企业的发展中发挥着越来越大的作用,企业能否在激烈的市场竞争中占有一席之地,取决于它是否能够有效地利用和处理各种信息。为此,很多企业都开发了管理信息系统,以起到收集和加工信息的作用。近年来,世界范围内Internet/Intranet网络环境的基本形成,使得基于Internet环境的信息系统的设计开发成为企业信息系统建设及发展的重要方向。在构建基于WEB的企业管理信息系统中,如何通过浏览器查询数据库以及维护数据库成为建设一个有效的网络管理信息系统的关键所在。为了实现基于WEB的数据库访问,需要有Web Server与DBMS(Database Management System)之间的接口,即WEB与数据库的连接技术。目前,人们普遍采用ASP技术作为动态网站建设的技术,虽然用ASP开发服务器程序的技术已经很成熟,但是ASP技术也存在着很多缺陷,如安全性低,适应性差,维护复杂等。随着Java和JSP技术的出现,为网站建设又开辟出了一条崭新的道路。JSP是Sun公司基于Java技术推出的新一代站点开发语言,也是一种开发Web后台程序的技术,它可以在Servlet和JavaBean的支持下,完成功能强大的站点程序开发,特别是对Web数据库的访问操作设计。目前,几乎所有平台都支持Java,JSP+JavaBean可以在所有平台下通行无阻,这是ASP无法比拟的。此外,与ASP相比,JSP还具有诸如运行速度快(访问数据库),安全性高(Servlet/与JSP分离),易于扩展(JavaBean)等独特优点。JSP与数据库连接有两种方法,分别是JDBC(JavaBean)技术和连接池(Connection Pool)技术。1.2 研究现状1.2.1 Web动态技术现状随着Internet和电子商务等应用的出现,动态网页技术也随着他们的出现诞生了。动态网页技术除了早期的CGI以外,现在主流的动态网页技术有JSP、ASP、PHP等。 CGI在早期,动态网页技术主要采用CGI技术,CGI即Common Gateway Interface(公共网关接口)。您可以使用不同的程序编写合适的CGI程序,如Visual Basic、Delphi或C/C+等。虽然CGI技术发展成熟而且功能强大,但由于编程困难、效率低下、修改复杂等缺陷,所以有逐渐被新技术取代的趋势。 ASPASP更精确的说是一个中间件,这个中间件将Web上的请求转入到一个解释器中,在这个解释器中将所以ASP的Script进行分析,再进行执行,而这时可以在这个中间件中创建一个新的COM对象,对这个对象中的属性和方法进行操作和调用,同时再通过这些COM组件完成更多的工作。所以说,ASP的强大不在于他的VBScript,而在于它后台的COM组件,这些组件无限的扩充ASP的能力。 PHPPHP(Hypertext Preprocrssor)是一种HTML内嵌式的语言(类似于IIS上的ASP)。而PHP独特的语法混合了C、Java、Perl以及PHP式的新语法,它可以比CGI或者Perl更快速的执行动态网页。 JSPJSP页面由HTML代码和嵌入其中的Java代码所组成。服务器在页面被客户端请求以后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。JavaServlet是JSP技术的基础,而且大型的Web应用程序的开发需要JavaServlet和JSP配合才能完成。JSP具备了Java技术的简单易用、完全面向对象、具有平台无关性且安全可靠、主要面向Internet的所以特点。动态网页技术的比较JSP、ASP、PHP的性能比较JSPASPPHP运行速度快较快较快运行耗损较小较大较大难易程度容易掌握简单简单运行平台绝大部分平台均可Windows平台Windows/UNIX平台扩展性好较好较差安全性好较差好函数支持多较少多数据库支持多多多厂商支持多较少较多对XML的支持支持不支持支持对组件的支持支持支持不支持对分布式处理的支持支持支持不支持应用程度较广较广较广1.2.2 Web数据库现状 MS SQL Server2000SQL Server 2000在SQL Server 7.0的基础上对数据库性能、数据可靠性、易用性方面做了重大改进,这些改进使SQL Server 2000更加安全且易于使用。为了满足不同的数据库管理需要,SQL Server 2000包含有6种不同的版本。SQL Server 2000的数据库引擎提供了完整的XML支持。它的可伸缩性、可用性和安全功能是构成最大的Web站点的数据存储组件所需的前提。SQL Server 2000程序设计模型与Windows DNA构架集成,使用户在开发Web应用程序时变得更加容易。另外,SQL Server 2000提供了对英文查询和搜索服务等功能,这样就使得用户可以在Web应用程序中包含界面友好的查询以及强大的搜索功能。 ORACLEOracle9i数据库使目前业内伸缩性最好、功能最齐全的数据库。与其他数据库系统相比它具有以下特点。更灵活的事物处理能力,更加强健完善的数据仓库技术,智能化的内容管理和自我管理,基于集群技术的高可靠性,严密的安全性体制,以及与其他操作系统平台(Unix、Linux和Windows)高度的集成性和在其之上的可伸缩性和可用性。Oracle在数据库管理、数据完整性检查、数据库查询性能、数据安全性方面都具有强大的功能,而且它还在保密机制、备份与恢复、空间管理、开放式连接以及开发工具方面提供了不同手段和方法。总之,Oracle成为不同用户、开发者以及管理者不可多得的优秀软件。 My SQLMySQL是一个高性能、多线程、多用户、建立在客户服务器结构上的RDBMS,专门为了速度和稳定性而设计。在过去的几年中,它已经成为线上和线下适合于数据库驱动的应用程序最受欢迎的RDBMS之一。我们不难发现这样急速增长的原因。现对于像Oracle和MS SQL Server一样的更商业化、非开放源代码的系统来说,快速、健壮和友好的数据库引擎、高级的数据管理和恢复工具。不断改进的特性集合、遵守现有的SQL标准、友好的商业许可原则,都是促成MySQL成为可实施的选择因素。MySQL的较低总体拥有成本和更稳定、更安全的系统特性,使越来越多的企业把他们的系统移植到MySQL,并且收获着MySQL开放源代码带来的利润。1.3 论文的研究方向本论文题目是基于JSP的Web数据库的访问技术的研究。使用JSP技术访问Web数据库。研究使用JSP的在什么情况下,用什么技术来访问数据库,可以得到最好的连接效率。同时针对不同的用户,不同的需求,该选择什么样的数据库使用。做为Web数据库,首先要考虑到安全性和稳定性,随后是访问的速度。最为安全性和稳定性,现在流行的商用数据库都很安全和稳定,不然没有人会使用。然后是访问速度。这个问题就要看运行的硬件平台、操作系统平台、运行环境、规模等一系列条件所决定了。而本文主要研究的就是数据库连接效率和速度。通过选用不同的JSP访问技术访问不同的数据库,多次的进行不同的SQL语言操作。然后得到数据访问的时间和访问的次数,进行分析比较。得出一个在什么情况下,选择什么样的连接方法,连接什么数据库是相对最好的,供用户挑选使用。第二章 相关技术2.1 JSP技术JSP技术是由Servlet技术发展起来的,自从有了JSP后,在Java服务器端编程中普遍采用的就是JSP,而不是Servlet。因为JSP在编写表示页面时远远比Servlet简单,并且不需要手工编译(由Servlet容器自动编译),目前Servlet主要用做视图控制器、处理后台应用等。由于JSP构建在Servlet上,所以它有Servlet所有强大的功能。在开发JSP规范的过程中,Sun公司与许多主要的Web服务器、应用服务器和开发工具供应商积极进行合作,不断完善技术。在传统的网页HTML文件(*.html,*.htm)中加入Java程序片段(Scriptlet)和JSP标记,就构成了JSP网页(*.jsp)。JSP基于强大的Java语言,具有良好的伸缩性,与Java Enterprise API紧密地集成在一起,在网络数据库应用开发领域具有得天独厚的优势,基于Java平台构建网络程序已经被越来越多的人认为是未来最有发展前途的技术。从JSP这几年的发展来看,JSP已经获得了巨大的成功,它通过和EJB等J2EE组件进行集成,可以编写出处理具有大的伸缩性、高负载的企业级应用。JSP技术在多个方面加速了动态Web页面的开发。下面总结一下JSP的特点。将内容的生成和显示进行分离使用JSP技术,Web页面开发人员可以使用HTML或者XML标识来设计和格式化最终页面。使用JSP标识或者小脚本来生成页面上的动态内容。生成内容的逻辑被封装在标识和JavaBeans组件中,并且捆绑在小脚本中,所以的脚本在服务器端运行。如果核心逻辑被封装在标识和Bean中,那么其他人,如Web管理人员和页面设计者,能够编辑和使用JSP页面,而不影响内容的生成。在服务器端,JSP引擎解释JSP标识和小脚本,生成所请求的内容(例如,通过访问JavaBeans组件,使用JDBCTM技术访问数据库或者包含文件),并且将结果以HTML(或者XML)页面的形式发送会浏览器。这有助于作者保护自己的代码,而又保证任何基于HTML的Web浏览器的完全可用性。生成可重用的组件绝大多数JSP页面依赖于可重用的、跨平台的组件(JavaBeans或者Enterprise JavaBeans组件)来执行应用程序所要求的更为复杂的处理。开发人员能够共享和交换执行普通操作的组件,或者使得这些组件为更多的使用者或者客户团体所使用。基于组件的方法加速了总体开发过程,并且使得各种组织在他们现有的技能和优化结果的开发努力中得到平衡。采用标识简化页面开发Web页面开发人员不一定都是熟悉脚本语言的编程人员。JavaServer Page技术封装了许多功能,这些功能是在易用的、与JSP相关的XML标识中进行动态内容生成时所需要的。标准的JSP标识能够访问和实例化JavaBeans组件,设置或者检索组件属性,下载Applet,以及执行用其他方法更难于编码或耗时的功能。通过开发定制标识库,JSP技术是可以扩展的。今后,第三方开发人员和其他人员可以为常用功能创建自己的标识库。这使得Web页面开发人员能够使用熟悉的工具和如同标识一样执行特定功能的构件来工作。JSP能提供所以的Servlets功能与Servlets相比,JSP能提供所有的Servlets功能,它比用Println书写和修改HTML更方便。此外,您可以更明确地进行分工,Web页面设计人员编写HTML,只需要留出空间让Servlets程序员插入动态部分即可。健壮的存储管理和安全性由于JSP页面的内置脚本语言是基于Java编程语言的,而且所有的JSP页面都被编译成为Java Servlet,JSP页面就具有Java技术的所以优点,包括健壮的存储管理和安全性。一次编写,随处运行作为Java平台的一部分,JSP拥有Java编程语言“一次编写,随处运行”的特点。随着越来越多的供应商将JSP支持添加到他们的产品中,您可以使用自己所选择的服务器和工具,但并不影响当前的应用。JSP的平台适应性更广这是JSP比ASP的优越之处。几乎所有平台都支持Java、JSPJavaBeans,他们可以在任何平台下通行无阻。WindowsNT下的IIS通过一个插件就能支持JSP,例如JRUN或者ServletExec,著名的Web服务器Apache已经能够支持JSP。由于Apache广泛应用在WindowsNT、UNIX和Linux上,因此JSP有更广泛的运行平台。虽然现在WindowsNT操作系统占了很大的市场份额,但是在服务器方面UNIX的优势仍然很大,而新崛起的Linux更是来势不小。从一个平台移植到另一个平台,JSP和JavaBeans甚至不用重新编译,因为Java字节码都是标准的字节码,与平台无关。Java中连接数据库的技术JDBC(Java Database Connectivity)很多数据库系统带有JDBC驱动程序,Java程序通过JDBC驱动程序与数据库相连,执行查询、提取数据库等操作。Sun公司还开发了JDBC-ODBC Bridge,用此技术Java程序就可以访问带有ODBC驱动程序的数据库,目前大多数数据库系统都带有ODBC驱动程序,所以Java程序能访问诸如Oracle、Sybase、MS SQL Server和MS Access等类型的数据库。简单易学随着JSP2.0中标签语言的出现,即使不懂Java的程序员也能编写出功能完善的JSP应用。2.2 JSP数据库连接技术2.2.1 JDBC(JavaBean)JDBC API为Java开发者使用数据库提供了统一的编程接口,它由一组Java类和接口组成。JDBC API使得开发人员可以使用纯Java的方法来连接数据库,并进行操作。再企业级环境中进行的数据库操作远远不只是连接数据库并执行语句,还需要考虑其他方面的要求,包括使用连接缓冲池来优化资源的使用,实习分布式事务处理。在JDBC3.0版本里,包括了两个包:java.sql和javax.sql。java.sql:这个包中的类和接口主要针对基本的数据库编程服务,如生成连接、执行语句以及准备语句和运行批处理查询等。同时也有一些高级的处理,比如批处理更新、事务隔离和可滚动结果集等。javax.sql:它主要为数据库方面的高级操作提供了接口和类。如为连接管理、分布式事务和旧有的连接提供了更好的抽象,它引入了容器管理的连接池、分布式事务和行集等。数据库厂商一般会提供一组API访问数据库。流行的数据库如Oracle、SQL Server、Sybase和Informix都为了客户访问提供了专用的API。有些厂商也专门提供数据库驱动程序,并且这些产品除了执行驱动的功能外,往往还提供一些额外的服务。有四种类型的数据库驱动程序,它们分别是:JDBC-ODBC桥;部分Java、部分本机驱动程序;中间数据访问服务器;纯Java驱动程序。下面分别介绍这些驱动程序。JDBC-ODBC桥在JDBC刚刚产生时,JDBC-ODBC桥时非常有用的。通过JDBC-ODBC桥,开发者可以使用JDBC来访问一个ODBC数据源。JDBC-ODBC桥驱动程序为Java应用程序提供了一种把JDBC调用映射为ODBC调用的方法。因此,需要在客户端机器上安装一个ODBC驱动。正如它的名字一样,JDBC-ODBC桥在JDBC API和ODBC API之间提供了一个桥梁,这个桥把标准的JDBC调用翻译成对应的ODBC调用,然后通过ODBC库把他们发送到ODBC数据源,如图2.1图2.1 JDBC-ODBC桥这种方式有一个明显的缺点就是效率相对低下,现在的开发中意见很少使用这种方式。通常不推荐使用这种桥驱动程序,但它可以减少开发人员进行企业开发的麻烦。部分Java、部分本机驱动程序这种驱动程序使用Java实习与数据库厂商专有API的混合形式来提供数据访问。它比前一种方式要快。JDBC驱动将标准的JDBC调用转变为数据库API的本地调用,该类型的驱动程序是本地部分Java技术性能的本机API驱动程序,如图2.2所示图2.2部分Java、部分本机驱动程序在这种方式里,驱动程序和厂商专有的API必须在每个运行Java应用程序的客户端安装。现在大多数的数据库厂商都在其数据库产品中提供该桥驱动程序,这种使用方式比前一种方式有晓。中间数据访问服务器这种方式使用一个中间数据访问服务器,通过这种服务器,它可以把Java客户端连接到多个数据库服务器上,如图2.3所示图2.3中间数据访问服务器这种方式不需要客户端的数据库驱动,而是使用网络服务器中层来访问一个数据库。该类型的驱动程序是网络协议完全Java技术性能的驱动程序,它为Java应用程序提供了一种进行JDBC调用的机制。使用该类型的驱动程序是平台无关的,并且不需要客户端的安装和管理,因此适合用做Internet的应用。纯Java驱动程序这种方式使用厂商专有的网络协议把JDBC API调用转换成直接的网络调用,这种方式的本质是使用套接字(Socket)进行编程。纯Java驱动运行在客户端,并且直接访问数据库,因此运行这个模式要使用一个两层的体系,如图2.4所示。图2.4纯Java驱动程序该类型的驱动程序是本地协议完全Java技术性能的驱动程序,同时它的使用也比较简单,客户端不需要安装任何中间件或者运行库。现在大部分厂商都提供第四类驱动程序的支持。2.2.2数据连接缓冲池在基于JDBC的应用程序中,很多内容都围绕着java.sql.Connection接口。在进行任何数据库操作之前,应用程序必须首先创建一个到数据库的连接(Connection)。然后,这个连接就成为应用程序和数据库之间的通道,应用程序使用它将SQL语句发送到数据库,数据库使用它返回执行结果。一个Connection和一个数据库用户帐号相关联,这样可以使数据库对通过Connection提交来的SQL语句执行访问控制检查。连接也是数据库事务(transaction)的边界。只有通过同一个Connection执行的SQL语句才可能组成一个事务。一个事务由若干个SQL语句组成,这些语句作为一个原子操作要么都成功执行,要么都失败。事务可以提交(commit)(所有对语句的修改都被永久保存)也可以回滚(roll back)(所有修改都被忽略),这些都要通过调用Connection方法来实现。在一个独立的应用程序里,通常只创建一次Connection,直至应用程序结束时才关闭。这样做并不奇怪,因为一个独立的应用程序在某一个时刻只需要服务于一个用户,由单一用户启动的数据库操作彼此之间通常都是有联系的。而在一个处理来自不同用户的无关请求的服务器应用程序中,如何处理连接还不是很明确。有三件事需要考虑:创建连接需要耗费时间;在某一时刻连接必须服务于一个用户,以免造成事务冲突;保持连接打开状态的代价很大。创建一个连接大概需要12秒种的时间。除了建立到数据库的网络连接之外,数据库引擎还必须对用户进行身份验证,并用各种数据结构创建一个环境以便记录事务、缓存的语句和结果,等等。为服务器所接收的每个请求都创建一个连接,实现起来虽然很简单,但在事务较多的服务器应用程序中,它的时间开销太大了。减少创建连接次数的一个办法就是,为每个需要访问数据库的servlet或JSP页面维护一个连接。可以在对网络资源进行初始化时创建连接,并以实例变量的方式将它保存起来,直至应用程序关闭时为止。随后你会发现,当你用这种方式部署应用程序时会导致大量的多线程问题。每个请求都通过同一个servlet或JSP页面执行一个独立的线程。很多JDBC驱动程序并不支持多线程访问同一个连接,这样就会出现很多运行时的错误。那些支持多线程的驱动程序会将所以调用都串行化,这样又会降低可缩放性。这样做所产生的一个更严重的问题时来自不同用户的请求(都使用了同一个连接)对相同的事务进行操作。如果一个请求试图回滚,那么所以使用相同连接的数据库操作都要被回滚。保持连接打开的代价很大,尤其是在系统资源(例如内存)方面。很多商用数据库产品的许可证都按照同时打开的连接数目来收费,所以从金钱方面来看连接的代价也很大。因此,应答尽量减少应用程序所需要的连接数。一种解决办法就是“一个资源一个连接”,也就是说,当数据库接受用户的第一次请求时为用户创建一个连接(每个用户一个连接),并将这个连接作为一个会话作用域对象。然而,这样做的缺点是连接在大多数情况下是不活动的,因为用户每次查看请求结果之间有较长的时间间隔。最好的办法就是使用连接池(connection pool)。连接池中保存了一些Connection对象,这些对象被所以servlet和JSP页面所共享。对于每个请求都会分配给它一个连接,使用完毕后再收回这个连接。使用这种方法解决了上面提到的问题:创建连接所需要的时间放入池内的连接只被创建一次,以后一直重用这个连接。大多数连接池的实现都允许你在启动时指定Connection对象的初始化个数和最大个数。如果需要就可以创建新的connection对象,直至达到最大个数。一旦达到了最大个数,连接池的客户就必须等待一个已有的Connection对象用完,而不能再创建新的connection对象。共享连接会造成多线程问题有了连接池之后,每个请求将得到它自己的Connection对象,所以在某一时刻它只被一个线程使用,从而避免了潜在的多线程问题。连接的资源有限有了连接池之后,每个连接都会得到有效的利用。如果有很多请求挂起,连接就很难在连接池中休息。如果连接允许你指定Connection对象的最大个数,还可以根据响应时间权衡并发连接的个数。然而,连接池并没有解决所以问题。因为所有用户都在使用一些相同的Connection对象,所以你不能依靠数据库引擎来限制对受保护数据的访问(对受保护数据的访问应答时每个用户一个连接)。相反,你必须根据用户的不同角色(具有相同访问权限的用户组)来定义数据访问规则。这样就可以针对不同角色的用户使用不同的连接池,每个连接池根据表示用户角色的帐号来创建Connection对象。图2.5连接池运行方式图2.6 连接池原理图图2.7整体体系结构第三章 分析设计3.1 课题整体设计思路3.1.1 JSP页面设计思路既然JSP是Web技术,那我们做将web网页形式来研究。首先要设计要用JSP来网页。在网页上,我们可以选择,访问不同的数据库,使用相同的SQL语句,对其进行相同次数的连接访问。从而得到一组数据进行比较。最后把数据转换成图表形式放在网页中,从而可以更加直观的看出,访问不同的数据库,使用不同的SQL语句,连接访问的次数之间的数据比较。index:首页,连接oracle,mssql,mysql页面。如图3.1。图3.1 首页oracle,mssql,mysql:有四种访问数据库的SQL语句。select,update,insert,delete。分别执行四句SQL语句1000次,5000次,10000次,20000次,统计从访问开始到访问结束所花费的时间,以毫秒为单位。然后连接到,select,update,insert,delete页面上。如图3.2图3.2数据库选择页面xxx_select,xxx_update,xxx_insert,xxx_delete:以图表形式显示访问数据库1000次,5000次,10000次,20000次所花费的时间,以毫秒显示。如图3.3图3.3图表显示页面3.1.2 JSP数据库连接技术设计思路我选用了JDBC技术连接,使用的是第四种连接方法。为什么不选用连接池呢?这个主要是因为我的硬件问题。以下是我的硬件配置。CPU:赛扬II850内存:256MBOS:Windows 2000 Profession由于所用的Oracle,SQL Server 2000对内存的开销都很大。启动的时候,几乎内存都用完了,还要启动Tomcat的JSP服务器。而连接池要开销很大一块内存用于存放Conneciton实例,再加上我的cpu速度也很慢,我测试运行的时候,速度极慢,如果查询1000次以上,就报内存共享错误,如果再多,就会出现内存溢出,死机等问题。为什么选用第四种连接方法呢?因为第四种用的是纯Java驱动。纯的Java驱动连接效率要比前几种都高,而我们选用的数据库,Oracle,SQL Server2000,My SQL都提供了驱动,所以完全可以使用第四种纯Java驱动,因为这肯定是效率最高的一个连接方式。3.1.3 数据库设计思路我这次选用了Oracle,SQL Server2000,My SQL这三种现在流行的数据库。首先他们的安全性,稳定性,已经有了很多的评价,我也不多做研究。考虑到机器配置的问题,而且没有选用连接池(大型数据库应用在服务器上,肯定选用连接池,因为数据吞吐量太大,JDBC连接效率太为低下了)我也不做大型的研究,所以只是在数据库中建了一个简单表。随后通过JSP中的JavaBean对数据库进行Select,Insert,Update,Delete操作。3.2 设计注意点由于选用了不同的数据库,又是在一台机器上运行。所以,不可能同时开3个数据库,否则开销太大,机器无法运行。所以只能分别打开,每次运行,分别启动一个数据库,进行研究。Oracle9i占用了8080端口,和Tomcat的默认端口冲突。所以要修改confserver.xml文件。把Tomcat的端口改为8081。然后,JSP页面就可以正常编译了。第四章 功能实现4.1系统运行环境4.1.1 JSP容器选择Tomcat4.0.3为JSP容器。Tomcat是最先实现Servlet2.2和JSP1.1技术标准的服务器软件。它既可以作小型的独立的服务器来测试和运行JSP页面,也可以集成到Apache服务器中。Tomcat是Apache上实现JSP+JavaBean环境的接口程序,集成了JSP1.1和Servlet2.2。它提供一个独立的mod_jserv.so模块,利用Apache的DSO动态载入。与以前的Jserver不同,Tomcat必须作为一个单独的程序运行,所以提交给Apache的Java请求将通过Tomcat自带的Jserver模块提交给Tomcat进一步处理。就是说,必须先运行Tomcat,再运行Apache才能解释jsp/Servlet程序。一般的JSP文件存放再webpage目录中,class文件存放在web_inf/classes目录中。在配置Tomcat的时候要在环境变量中加入以下3个变量catalina_homejava_hometomcat_home所以都配置好以后,运行tomcatbin目录下的startup.bat文件来启动Tomcat。在浏览器中输入“http:/localhost:8080”, 如果可以看到如图4.1所示,那么说明Tomcat配置成功。图4.1 Tomcat页面4.1.2 数据库前面已经介绍过,本文主要研究三个数据库:Oracle,SQL Server2000,My SQL这三种现在流行的数据库。4.2 开发工具4.2.1 JCreator Pro v2.5要编写Java程序,当然要一个Java集成开发环境。虽然Borland JBuilder、Sun One Studio、Eclipse都是很好的Java集成开发环境,但是其资源占用的能力也和他们的能力一样,吨位很大。而我编写的程序没有那么庞大,无需使用那些重量级的工具,所以我选择了小巧实用的Jcreator。别看它小,但也是麻雀虽小,五脏俱全。它的功能覆盖了工程管理、工程模板、突出语法、自动缩进、行数显示、类集、标签文件、自动完成、向导、无限Undo/Redo、搜索文件、文件外部修改提示、书签标记、代码模板、调试控制台等。同时它还提供一个JavaDocs帮助浏览器,当你的本机存有JavaDoc文档的华,你就可以直接在线阅读。而且,其完备的JDK Help功能也能够为你提供不少的服务。JCreator Pro界面如图4.2:图4.2 Jcreator页面4.2.2 Macromedia Dreamweaver MX 2004编写JSP页面的代码是很费劲的,html代码非常繁琐,但是,如果用了Dreamweaver的话,就变的非常容易了,使开发者的精力从以前的编写html代码上,改为编写网页的效果和后台处理上。Dreamweaver界面如下图图4.34.3 详细设计JaveBeans的设计是重点。所以的JSP访问数据可操作,都是通过JavaBeans来实现的。所有对数据库的操作,都封装在JavaBeans中,JSP页面中没有程序代码。这样使得JSP编译的速度更快快速,同时也把网页的前台和后台的运行,完全区分开,便于网页的开放和维护。ConnXXX.java (XXX代表不同的数据库名)这个JavaBeans主要是连接数据库,并且可以对数据库进行操作。private String OracleDBDriver = oracle.jdbc.driver.OracleDriver;这句语句是使用一个JDBC驱动。Private String Oracle ConnStr=jdbc:oracle:thin:scott/tigerlocalhost:1521:crx;这句话是连接数据库的套接字。jdbc:oracle:thin:是连接数据库的方法scott/tiger:是用户名和密码localhost:1521:crx:是网络IP地址:端口:数据库名private Connection conn = null;private Statement stmt = null;ResultSet rs = null;Connection对象代表与数据库的连接,也就是在已经加载的Driver和数据库之间建立连接。Statement对象提供在基层连接上运行SQL语句,并且访问结果。ResultSet对象是包含一个查询的结果集executeQuery()方法是对数据库进行查询的方法。executeUpdate()方法是对数据库进行更新的方法。repeatSQLSelect();repeatSQLInsert();repeatSQLUpdate();repeatSQLDelete();四个方法是进行循环数据库操作的方法。getTimeSQL()是取得对数据库进行操作到操作结束所用的时间方法。表4.1 数据库驱动和URL数据库名驱动程序URLMS SQL Server 2000Com.microsoft.jdbc.sqlserver.SQLServerDriverJdbc:Microsoft:sqlserver:/ip:port;user=user;password=passwordJDBC-ODBCSun.jdbc.odbc.JdbcOdbcDriverjdbc:odbc:odbcsourceOracle oci8Oracle.jdbc.driver.OracleDriverjdbc:oracle:oci8:sidOracle thin DriverOracle.jdbc.driver.OracleDriverjdbc:oracle:thin:ip:port:sidCloudscapeCOM.cloudscape.core.JDBCDriverjdbc:cloudscape:databaseMySQLOrg.gjt.mm.mysql.Driverjdbc:mysql:/ip/database,user,passwordRepeatXXXBar(XXX代表不同的SQL语句)这个JavaBeans主要就是取得数据库连接访问所花费的时间,然后按时间,次数,生成各种SQL语言所对应的图表org.jfree.data.category.DefaultCategoryDataset dataset = new org.jfree.data.category.DefaultCategoryDataset();dataset.addValue(sql_1000, Oracle, 1000);dataset.addValue(sql_5000, Oracle, 5000);dataset.addValue(sql_10000, Oracle, 10000);dataset.addValue(sql_20000, Oracle, 20000);JFreeChart chart = ChartFactory.createBarChart3D(数据库Update图, / 图表标题更新次数, / 目录轴的显示标签更新所用时间/ms, / 数值轴的显示标签dataset, / 数据集PlotOrientation.VERTICAL, / 图表方向:水平、垂直true, / 是否显示图例(对于简单的柱状图必须是false)false, / 是否生成工具false / 是否生成URL链接);是生成一个DefaultCategoryDataset图表对象。FileOutputStream fos_jpg = null;try fos_jpg = new FileOutputStream(D:tomcatwebappsROOTcrximagesbaroracle_update.jpg);ChartUtilities.writeChartAsJPEG(fos_jpg,100,chart,400,300,null); finally try fos_jpg.close(); catch (Exception e) 最后生成图表,按各自的名字存放在指定目录下。供JSP页面调用。第五章 数据分析比较5.1 Oracle数据库数据分析Select语句执行结果:Select语句执行次数耗时/ms1000次1375685000次70758210000次157546220000次2754532表5.1 Select结果表图5.1 Select数据比较图表5.1是显示Oracle数据库执行Select的次数和花费的时间。图5.1是JSP生成的数据比较图表。Insert语句执行结果:Insert语句执行次数耗时/ms1000次1523545000次80548610000次170523720000次3542568表5.2 Insert结果表图5.2 Insert数据比较图表5.2是显示Oracle数据库执行Insert的次数和花费的时间。图5.2是JSP生成的数据比较图表。Update语句执行结果:Update语句执行次数耗时/ms1000次1625385000次75235910000次162584220000次3505482表5.3 Update结果表图5.3 Update数据比较图表5.3是显示Oracle数据库执行Update的次数和花费的时间。图5.3是JSP生成的数据比较图表。Delete语句执行结果:Delete语句执行次数耗时/ms1000次1756895000次80123610000次182145620000次3125458表5.4 Delete结果表图5.4 Delete数据比较图表5.4是显示Oracle数据库执行Delete的次数和花费的时间。图5.4是JSP生成的数据比较图表。5.2 MS SQL Server 2000 数据库数据分析Select语句执行结果:Select语句执行次数耗时/ms1000次1445325000次62245310000次142568420000次2752563表5.5 Select结果表图5.5 数据比较图表5.5是显示MS SQL Server 2000数据库执行Select的次数和花费的时间。图5.5是JSP生成的数据比较图表。Insert语句执行结果:Insert语句执行次数耗时/ms1000次1632545000次62358410000次152324520000次2935245表5.6 Insert结果表图5.6 Insert数据比较图表5.6是显示MS SQL Server 2000数据库执行Insert的次数和花费的时间。图5.6是JSP生成的数据比较图表。Update语句执行结果:Update语句执行次数耗时/ms1000次1252455000次68525410000次145258520000次2825456表5.7 Update结果表图5.7 Update数据比较图表5.7是显示MS SQL Server 2000数据库执行Update的次数和花费的时间。图5.7是JSP生成的数据比较图表。Delete语句执行结果:Delete语句执行次数耗时/ms1000次1256485000次78585810000次142325620000次3125645表5.8 Delete结果表图5.8 Delete数据比较图表5.8是显示MS SQL Server 2000数据库执行Delete的次数和花费的时间。图5.8是JSP生成的数据

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论