莫相离 发表于 2015-1-18 11:19:33

JAVA网站制作之Java会见数据库的速率瓶颈成绩的剖析及...

Java到底会发战成什么样,让我们拭目以待吧,我始终坚信着java会更好。以上都是俺个人看法,欢迎大家一起交流.会见|办理|数据|数据库|速率|成绩内容:

速率瓶颈成绩的提出
JDBC会见数据库的机制
分歧形式的JDBC接口的选择
Java程序中SQL语句格局的优化
软件模子中对数据库会见的计划形式的优化
将深切研讨的成绩
参考材料
关于作者




FoolsGarden@SMTH
自在Java传羽士
2001年11月

速率瓶颈成绩的提出
在企业级的Java使用中,会见数据库是一个必备的环节。数据库作为数据资本的集散地,常常位于企业级软件系统的前方,供后方的使用程序会见。在Java手艺的系统中,使用程序是经由过程JDBC(JavaDatabaseConnectivity)接口来会见数据库的,JDBC撑持"创建毗连、SQL语句查询、处置了局"等基础功效。在使用JDBC接口会见数据库的过程当中,只需依据标准来操纵,这些功效的完成不会出不对。可是,有些时分举行数据查询的效力实在闪开发职员烦恼不已,明显依据标准编写的程序,却得不到预期的运转效果,形成了全部软件的实行效力不高。

后来,我们把成绩回结于Java字节码加载和实行速率的迟缓,紧接着硬件的功效广泛失掉了加强,证实如许的设法些许是毛病的,还没有抓到真实的基本缘故原由。本文将慢慢剖解JDBC会见数据库的机制,深层剖析形成这类速率瓶颈成绩的缘故原由,并提出在现有的Java手艺框架下办理这个速率瓶颈成绩的思绪和办法。

JDBC会见数据库的机制







和形貌了Java使用程序经由过程JDBC接口会见数据库的4种驱动形式,也就是底层完成JDBC接口的形式。关于这些形式,我们一一先容:

形式4:右边的分支称为形式4,它通常为数据库厂商才干完成的纯Java的基于当地协定的驱动,间接挪用DBMS(数据库办理体系)利用的收集协定,关于企业外部互联网来讲,是一个有用的办理计划。

形式3:右侧的分支称为形式3,它一样是一个纯Java驱动,分歧于形式4的是基于收集协定。它的机制是将JDBC挪用转换为两头收集协定,然后转换为DBMS协定。两头收集协定层起到一个读取数据库的两头件的感化,可以毗连很多范例的数据库,因此是最天真的JDBC形式。这类形式的产物对照合用于企业外部互联网,如若撑持国际互联网,还需增加对平安、穿过防火墙会见等的撑持。

形式1:右边的分支称为形式1,即一般由Sun公司供应的JDBC-ODBC桥接器。它供应了经过一种或多种ODBC驱动举行会见的JDBC接口,而ODBC驱动,在良多情形下也即数据库的客户端,必需加载到客户机。因此,它合用于下载和主动安装Java程序不主要、实行用处大概没有别的JDBC驱动可用的情形下。

形式2:右侧的分支成为形式2,相似于JDBC-ODBC桥接器,必要加载到客户机,倒是一个部分用Java完成的驱动接口。它将JDBC挪用转换为对数据库(Oracle、Sybase、Informix、DB2等)客户端接口的挪用。

分歧形式的JDBC接口的选择
以上论述的JDBC接口的形式分歧,让我们能够把JDBC接口依照完成的形式分为四类。有些同仁大概有如许的体味,选择分歧的JDBC接口会有分歧的会见速率,为什么会呈现如许的情形?这个成绩的谜底是,分歧的使用必要分歧形式的JDBC接口,因此我们在面临一个使用时,要稳重选择JDBC接口。

一般的DBMS都撑持微软提出的ODBC标准,因此形式1可看成您在计划和完成软件时的选择,它易于设置的特征可以让你把选择JDBC等懊恼的成绩临时抛在一边,让本人的Java程序可以尽早地一般事情起来。

一样平常说来,贸易DBMS的供应者常常会为本人的数据库供应一个JDBC接口,使用的是形式4。这类形式的上风在于和数据库自己分离对照严密,并且是纯Java的完成,在企业级的软件使用中,应当是首选。比方,关于Oracle数据库来讲,有Oracle、SilverStream、DataDirect等公司供应这类范例的驱动,其功能常常被评价为最高效的、最牢靠的驱动程序。但偶然也有对照贫苦的情形,比方微软就不会供应MSSQL的JDBC接口,这时候就必要到Sun的网站(http://industry.java.sun.com/products/jdbc/drivers)查找相干的形式4驱动,下面提到的DataDirect公司(http://www.datadirect-technologies.com/jdbc/jdbc.asp)就供应了撑持MSSQL的形式4驱动,只是你必要付出750$购置这个JDBC驱动。

一样是纯Java完成的形式3,与形式4比拟,上风在于对多种数据库的撑持,表现了其天真性。在年夜型的企业级的软件使用中,背景数据库常常不是一个,并且是由分歧的厂商撑持的。不外,形式3的JDBC驱动常常供应很多企业级的特性,比方SSL平安、撑持散布式事件处置和会合办理等,因此会对你特别的用处有很年夜的匡助。是不是选用,还在于你对扩大使用是不是有需求和对多DBMS的撑持。

谈到这儿,我对形式3和形式4作一个总结:二者都是纯Java完成的驱动,因此不必要数据库厂商供应附加的软件,就能够运转在任何尺度的Java平台,功能上对照高效、牢靠。

懂得上述3种JDBC的完成形式以后,形式2就更简单阐释了,你能够了解它为前三者利害均衡的让步产品:

1自创形式1使用客户机当地代码库,减速数据会见的实行,但却摒除ODBC尺度,而是撑持厂商本人指定的功能扩大
2自创形式3使用多层布局,下层用Java完成,利于跨平台使用和撑持多半据库,但上层却改成当地代码,减速实行速率
3自创形式4和数据库分离严密的长处,部分用Java完成,更是对数据库功能有很年夜的扩大



这类开放和高功能的特性失掉了业界的一定,因此被次要的数据库厂商激烈保举。只管它必要你下载当地代码库到客户机,但相对你会见数据库速率的进步,这些应当只是举手之劳了。上面对4种完成JDBC的形式选择,归结一下选择的按次(固然是指你有选择余地的时分,不存在的话向后推迟):

编号选择历程剖析选择按次
1实行性情况下,尽量选择易于设置的驱动,利于Java程序的开辟,前期可在对使用情况举行判别后,再对JDBC形式举行选择1>2>3>4
2小型企业级情况下,不必要对多半据库的撑持,因此形式2和3的有些长处其实不能表现出来,激烈保举你选择形式4的JDBC驱动4>2=3>1
3年夜型企业级情况下,必要对多半据库的撑持,形式2和3半斤八两,可是更多情形下是你会选择速率较快的形式22>3>4>1



关于分歧厂商供应的但使用不异形式的JDBC接口,实际上对照不出效力的上下,你只要经由过程必定的工具,比方Benchmark等,对它们举行对照才干更有益于你的选择。由于临时不存在第三方供应的数据对照了局,以是这些成绩必要你对上述内容有了透辟了解以后自行办理。

Java程序中SQL语句格局的优化
这个时分,你大概还在为找不到符合的JDBC驱动而束手无策,大概为本人在清晨3点下载的JDBC驱动经由过程了测试而欣喜若狂,可是其实不申明你对程序的优化事情已可有可无了。牢记,对全部软件体系的优化,包含每一个环节的优化,要不有大概你会半途而废。我在这儿反面人人会商Java程序的算法,而是复杂论述一下选择SQL语句格局的需要和怎样选择对本人有益的SQL语句格局。看上面两段程序片段:

CodeFragment1:

StringupdateString="UPDATECOFFEESSETSALES=75"+"WHERECOF_NAMELIKE

简单生活 发表于 2015-1-20 20:24:40

让你能够真正掌握接口或抽象类的应用,从而在原来的Java语言基础上跃进一步,更重要的是,设计模式反复向你强调一个宗旨:要让你的程序尽可能的可重用。

若天明 发表于 2015-1-28 19:46:16

是一种使网页(Web Page)由静态(Static)转变为动态(Dynamic)的语言

山那边是海 发表于 2015-1-31 07:10:33

设计模式是高级程序员真正掌握面向对象核心思想的必修课。设计模式并不是一种具体"技术",它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧

兰色精灵 发表于 2015-2-2 06:48:09

那么我书也看了,程序也做了,别人问我的问题我都能解决了,是不是就成为高手了呢?当然没那么简单,这只是万里长征走完了第一步。不信?那你出去接一个项目,你知道怎么下手吗,你知道怎么设计吗,你知道怎么组织人员进行开发吗?你现在脑子里除了一些散乱的代码之外,可能再没有别的东西了吧!

活着的死人 发表于 2015-2-4 13:47:47

Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。

分手快乐 发表于 2015-2-7 22:46:36

至于JDBC,就不用我多说了,你如果用java编过存取数据库的程序,就应该很熟悉。还有,如果你要用Java编发送电子邮件的程序,你就得看看Javamail 了。

变相怪杰 发表于 2015-2-12 06:21:40

当然你也可以参加一些开源项目,一方面可以提高自己,另一方面也是为中国软件事业做贡献嘛!开发者在互联网上用CVS合作开发,用QQ,MSN,E-mail讨论联系,天南海北的程序员分散在各地却同时开发同一个软件,是不是很有意思呢?

金色的骷髅 发表于 2015-2-17 17:21:04

有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想)

乐观 发表于 2015-2-26 02:54:21

Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。

再见西城 发表于 2015-3-8 11:33:15

是一种语言,用以产生「小应用程序(Applet(s))

透明 发表于 2015-3-15 22:16:07

如果你学过HTML,那么事情要好办的多,如果没有,那你快去补一补HTML基础吧。其实JSP中的Java语法也不多,它更象一个脚本语言,有点象ASP。
页: [1]
查看完整版本: JAVA网站制作之Java会见数据库的速率瓶颈成绩的剖析及...