动态网站制作指南 [  QQ表情  ]
[ 投票调查 ]
[ 企业邮箱 ]
[ 网站空间 ]
网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
ASP源码 | .Net源码 | PHP源码 | JSP源码 | JAVA源码 | CGI源码 | VB源码 | C++源码 | Delphi源码 | PB源码 | VF源码 | 汇编 | 服务器
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Java教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
文章搜索服务
邮件订阅
输入你的邮件地址,
你将不会错过任何关于:
[ Java教程 ]的信息

本月文章推荐
.谈谈Java:Checked Exception与R.
.灵活使用EJB的本地和远程接口(三).
.利用JAVA语言实现支持视频点播的.
.Java中的this关键字.
.J2EE 和 .NET之间的对比.
.Java C/S mode --Client.
.签名一个使用插件1.3版的Java小程.
.在java应用程序中显示数据库的bl.
.实战J2EE?开发购物网站(四).
.使用JWSDP完成Web Service在java.
.FolderExists 方法.
.Java技巧:使用Runtime.exec重定.
.基于Java网络管理应用程序的优点.
.Java的网络程序设计(1).
.Struts源码研究 - Action-Input属.
.在运行时刻从文件中调入Class.
.图解JBuilderX安装与实践.
.JavaMail 发送附件的例子.
.与其它国际认证的对比.
.Java基本语法(四)——字串和数.

Java访问数据库的速度瓶颈问题的分析及解决

发表日期:2008-1-5 |


本文分析了 Java 访问数据库的瓶颈问题,并给出了相应的解决办法。

速度瓶颈问题的提出
在企业级的Java应用中,访问数据库是一个必备的环节。数据库作为数据资源的集散地,往往位于企业级软件体系的后方,供前方的应用程序访问。在Java技术的体系中,应用程序是通过JDBC(Java Database Connectivity)接口来访问数据库的,JDBC支持"建立连接、SQL语句查询、处理结果"等基本功能。在应用JDBC接口访问数据库的过程中,只要根据规范来操作,这些功能的实现不会出差错。但是,有些时候进行数据查询的效率着实让开发人员懊恼不已,明明根据规范编写的程序,却得不到预期的运行效果,造成了整个软件的执行效率不高。

起初,我们把问题归结于Java字节码加载和执行速度的缓慢,紧接着硬件的功能普遍得到了增强,证实这样的想法些许是错误的,还没有抓到真正的根本原因。本文将逐步解剖JDBC访问数据库的机制,深层分析造成这种速度瓶颈问题的原因,并提出在现有的Java技术框架下解决这个速度瓶颈问题的思路和方法。

JDBC访问数据库的机制

Java访问数据库的速度瓶颈问题的分析及解决(图一)
图1 Java访问数据库的速度瓶颈问题的分析及解决(图二)
图2

图1和图2描述了Java应用程序通过JDBC接口访问数据库的4种驱动模式,也就是底层实现JDBC接口的模式。对于这些模式,我们逐一介绍:

模式4:图1左边的分支称为模式4,它一般是数据库厂商才能实现的纯Java的基于本地协议的驱动,直接调用DBMS(数据库治理系统)使用的网络协议,对于企业内部互联网来说,是一个实用的解决方案。

模式3:图1右边的分支称为模式3,它同样是一个纯Java驱动,不同于模式4的是基于网络协议。它的机制是将JDBC调用转换为中间网络协议,然后转换为DBMS协议。中间网络协议层起到一个读取数据库的中间件的作用,能够连接许多类型的数据库,因而是最灵活的JDBC模式。这种模式的产品比较适用于企业内部互联网,如若支持国际互联网,还需添加对安全、穿过防火墙访问等的支持。

模式1:图2左边的分支称为模式1,即通常由Sun公司提供的JDBC-ODBC桥接器。它提供了经由一种或多种ODBC驱动进行访问的JDBC接口,而ODBC驱动,在很多情况下也即数据库的客户端,必须加载到客户机。因而,它适用于下载和自动安装Java程序不重要、实验用途或者没有其它JDBC驱动可用的情况下。

模式2:图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等公司提供这种类型的驱动,其性能往往被评价为最高效的、最可靠的驱动程序。但偶然也有比较麻烦的情况,例如微软就不会提供MS SQL的JDBC接口,这时就需要到Sun的网站( http://industry.java.sun.com/prodUCts/jdbc/drivers)查找相关的模式4驱动,上面提到的DataDirect公司( http://www.datadirect-technologies.com/jdbc/jdbc.ASP)就提供了支持MS SQL的模式4驱动,只是你需要支付750$购买这个JDBC驱动。


上一篇:利用Jakarta Commons Lang简化Java 人气:512
下一篇:开发手机游戏的一点心得(一) 人气:462
浏览全部Java的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-8-30 HBcms(宏博cms)内容管理系统 v1.1
2008-8-30 邓西网站帮助系统 v2.3
2008-8-30 破竹CMS v4.0.7.21
2008-8-30 美女写真网图片小偷 v1.5 全站静
2008-8-30 PHP美女写真Cms v1.00
2008-8-30 PHPer.yang情书系统 v1.0
2008-8-30 快乐商城全站源码
2008-8-29 oblog v4.6 build 20080827
2008-8-29 ASBLOG v2.5 bulid 080828
2008-8-23 Mini WinMount V0.4
2008-8-23 Vista优化大师3.11正式版
2008-8-23 Wine 1.13
2008-8-23 KlipFolio 5.0 Build 5899-80
2008-8-23 Windows Sysinternals Desktops
2008-8-23 OneTap Movies1.2破解版
2008-8-23 AnnotaterPDF阅读1.1.503 破解版
2008-8-23 SoundMeter分贝测量仪 v1.0汉化破
2008-8-23 iDrum音乐节拍1.0破解版
  发表评论
姓 名: 验证码:
内 容:
站长工具:网站收录查询 | Google PR查询 | ALEXA排名查询 | CSS在线编辑器 | 广告代码 | Html转换js | js/vbs加密 | md5加密 | 进制转换
实用工具:汉字翻译拼音 | 符号对照表 | 个税计算 | 经典小工具 | 汉字简繁转换 | 普通单位换算 | 公制单位换算 | 生辰老黄历 | 国内电话区号 国家代码与域名缩写 | 文字加密解密 | 健康查询 | 万年历 | 汉字横竖排版 | 手机号码查询 | 计算器 | ip搜索
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2008 www.knowsky.com All rights reserved | 网络实名:动态网站制作指南 | 沪ICP备05001343号