动态网站制作指南 [  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核心代码例程之:DatagramCl.
.关于EJB的持久化对象技术分析(1).
.新手上路:Tomcat5.5.9的安装配置.
.JDBC基础教程之连接.
.如何使用AOP编程减少升级的风险(.
.用Struts管理大型的复杂网站.
.JAVA相关基础知识(1).
.类访问.
.Sun,IBM策划Java Portal标准.
.JAVA里字符编码的探索与理解.
.完整图解 Tomcat 5.0.28 安装笔记.
.使用JRockit5.0运行BEAWorkshop/.
.介绍J2ME平台的几个重要概念.
.审查Java 代码的十一种常见错误.
.Java数据库接口JDBC基础教程之驱.
.程序安装,升级及卸载核心部分(.
.JAVA高手解析XML配置文件的读取操.
.首页地址添加到收藏夹(javascrip.
.实例讲解移动QQ在线平台(二).
.Web 服务代理组件创建 JSF Web 服.

高性能Java设计与开发

发表日期:2008-1-5 |



     ——JDBC 篇(一)
  
  驱动程序的选择
  
  在企业级的Java应用中,访问数据库是一个必备的环节。数据库作为数据资源的集散地,往往位于企业级软件体系的后方,供前方的应用程序访问。在Java技术的体系中,应用程序是通过JDBC(Java Database Connectivity)接口来访问数据库的,JDBC支持"建立连接、SQL语句查询、处理结果"等基本功能。在应用JDBC接口访问数据库的过程中,只要根据规范来操作,这些功能的实现不会出差错。但是,有些时候进行数据查询的效率着实让开发人员懊恼不已,明明根据规范编写的程序,却得不到预期的运行效果,造成了整个软件的执行效率不高。
  
  访问数据库的性能主要有两个因素决定。一是数据库服务器本身的性能,如数据库治理系统、数据库结构的设计;其二就是与数据库相对独立的JDBC应用编程接口(API)的使用也很大程度上影响着JDBC程序的性能。前一点不属于我们讨论的范围,我们不做具体论述。
  
  JDBC数据库访问机制:
  
  

   高性能Java设计与开发(图一)
  图一
  
  高性能Java设计与开发(图二)
  图二
  

  
  · 图一左边的分支称为Type 1驱动模式,即通常由Sun公司提供的JDBC-ODBC桥,加上一个ODBC驱动,它提供了经由一种或多种ODBC驱动进行访问的JDBC接口。通常的DBMS都支持微软提出的ODBC规范,因此该模式可以普遍使用,非常灵活,具有很好的代码移植性。 但该模式不适用于high-transaction环境,也没有好的支持,并且功能有限。因为每次调用都要转换成ODBC调用,所以这种模式与其他模式相比性能最差。因而Type 1仅适用于下载和自动安装Java程序不重要、实验用途或者没有其它JDBC驱动可用的情况下,绝不推荐用于生产。
  
  · 图一右边的分支成为Type 2驱动模式,类似于JDBC-ODBC桥接器,需要加载到客户机,却是一个部分用Java实现的驱动接口。使用本地API,它将JDBC调用转换为对数据库(Oracle、Sybase、Informix、DB2等)客户端接口的调用。
  
  · 图二左边的分支称为Type 4驱动模式,它一般是数据库厂商才能实现的纯Java的基于本地协议的驱动,直接调用DBMS(数据库治理系统)使用的网络协议,对于企业内部互联网来说,是一个实用的解决方案。
  
  · 图二右边的分支称为Type 3驱动模式,它同样是一个纯Java驱动,不同于Type 4驱动模式的是基于网络协议。它的机制是将JDBC调用转换为中间网络协议,然后转换为DBMS协议。中间网络协议层起到一个读取数据库的中间件的作用,能够连接许多类型的数据库,因而是最灵活的JDBC模式。
  
  了解了现有的JDBC驱动类型以后,我们做一下综合分析:
  
  Type1驱动支持多种数据库访问,理论上利用客户机本地代码库,可以加速数据访问的执行,但因为要做JDBC——ODBC转换,相应的开销绝对大于前者产生的性能提高,因此不可能有好的性能支持。由于多种原因,该类驱动得不到服务商的好的支持,使其无论性能还是功能都相对差劲,事实上该类驱动基本上得不到使用。
  
  Type2驱动类似于Type1,利用了客户机本地代码,虽然不需要将数据库请求转换成ODBC调用,但有二进制代码客户端装载开销,不太可能有好的性能。另外,虽然其上层用Java实现,但因为与下层本地代码邦定紧密,无论是跨平台应用还是多数据库支持都很限制。因此不推荐该类型驱动。
  
  Type3驱动是纯Java驱动,一般由应用服务器提供商集成到应用服务器中,为三层结构,能连接许多类型的数据库,非常灵活。看似中间多了一个环节,但应用服务器提供这种驱动程序的同时也提供了很多优化的功能,它们一般还会配套的提供连接池、数据缓冲区、负载均衡等,所以性能并不差。
  
  Type4驱动也是纯Java驱动,但其直接访问数据库。一般说来,商业DBMS的提供者往往会为自己的数据库提供Type4的JDBC接口。这种模式的优势在于和数据库本身结合比较紧密,而且是纯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的Type4驱动,只是你需要支付$购买这个JDBC驱动。
  
  Type3和Type4第三方驱动可能会提供比数据库商的驱动更好的性能, 并且能更好的执行,究其原因也是显而易见的,驱动商聚精会神于驱动,数据库商有更多其他的事情要考虑。
  
  同样是纯Java实现的Type3,与Type4相比,优势在于对多种数据库的支持,体现了其灵活性。在大型的企业级的软件应用中,后台数据库往往不是一个,而且是由不同的厂商支持的。不过,Type3的JDBC驱动往往提供许多企业级的特征,例如SSL安全、支持分布式事务处理和集中治理等,因而会对你非凡的用途有很大的帮助。至于其性能,二者相当。如何选择,就看你应用的需要了。
  
  综上所述,假如可能,Type1绝不要用,Type3和Type4由于众多厂商的支持,有连接池、数据缓冲等技术的使用,性能比Type2和Type1都要好,又都是纯Java的实现,属于首选。
  
  另外普遍反映,对于Oracle数据库,尽管Oracle说OCI驱动为最佳的客户端访问驱动,但事实上Thin驱动程序可以获得更好的性能。
上一篇:关于线程的停止问题 人气:916
下一篇:管理人员如何编制性能计划 人气:585
浏览全部Java的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-10-10 企业网站智能管理系统(TZIMS) v6
2008-10-10 拓文asp.net网站内容管理系统 v6
2008-10-10 动网论坛PHP版 v2.0++ Build 081
2008-10-10 免费时代CMS v5.0
2008-10-10 wodig第四季中文DIGG社区 v4.1 b
2008-10-10 老Y文章管理系统 v2.2 bulid 081
2008-10-10 魔法盒动感相册 ASP+SQL版 v2.0
2008-10-10 Asoft签到管理系统 v3.0 Pack1
2008-10-10 哥特人音乐网潮流留言本 v1.1
2008-10-11 联系人分组工具 v1.1 中文破解版
2008-10-11 FaceMelter变脸 v2.0 汉化破解版
2008-10-11 PathTracker道路跟踪仪 v1.2 破解
2008-10-11 Rooms手机聊天室 v0.6.7 破解版
2008-10-11 RemoteDesktop远程桌面 v1.0 破解
2008-10-11 ProRemote远程调音台 v1.0.1 破解
2008-10-11 PicShare照片共享 v1.0.0 破解版
2008-10-11 Photogene照片编辑器 v1.5 汉化破
2008-10-11 WriteRoom共享文档 v1.0 破解版
  发表评论
姓 名: 验证码:
内 容:
站长工具:网站收录查询 | Google PR查询 | ALEXA排名查询 | CSS在线编辑器 | 广告代码 | js/vbs加密 | md5加密 | 进制转换 | UTF-8 转换工具 | Html转换js | Html转换asp | Html转换php | Html转换perl
实用工具:汉字翻译拼音 | 拼音字典 | 符号对照表 | 个税计算 | 实时汇率查询换算 | 经典小工具 | 汉字简繁转换 | 普通单位换算 | 公制单位换算 | 生辰老黄历 | 国内电话区号 | 国家代码与域名缩写 | 文字加密解密 | 健康查询 | 万年历 | 汉字横竖排版 | 手机号码查询 | 计算器 | ip搜索
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2008 www.knowsky.com All rights reserved | 网络实名:动态网站制作指南 | 沪ICP备05001343号
ホームページ制作 不動産検索システム 求人情報
防水工事·改修工事 フットサル大会 探偵
SEO対策 中国語教室 ホームページ作成