﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-椰林-文章分类-技术</title><link>http://www.blogjava.net/gust/category/7931.html</link><description>暂无</description><language>zh-cn</language><lastBuildDate>Tue, 18 Jun 2013 16:22:39 GMT</lastBuildDate><pubDate>Tue, 18 Jun 2013 16:22:39 GMT</pubDate><ttl>60</ttl><item><title>关于jdbc的1,2,3,4</title><link>http://www.blogjava.net/gust/articles/32691.html</link><dc:creator>椰子</dc:creator><author>椰子</author><pubDate>Mon, 27 Feb 2006 08:52:00 GMT</pubDate><guid>http://www.blogjava.net/gust/articles/32691.html</guid><wfw:comment>http://www.blogjava.net/gust/comments/32691.html</wfw:comment><comments>http://www.blogjava.net/gust/articles/32691.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/gust/comments/commentRss/32691.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/gust/services/trackbacks/32691.html</trackback:ping><description><![CDATA[<DIV class=title>
<H2>关于jdbc的1,2,3,4.</H2><A href="http://www.matrix.org.cn/user.shtml;jsessionid=76E8CF2490F640688FBE3D8CC7F09AF3?userid=55800">feidei</A> 发表于 2004-11-09<BR>关键词:jdbc驱动 </DIV><!-- end of div title -->
<DIV class=summary>
<DIV class=left></DIV>
<DIV class=center>
<H4>&nbsp;</H4></DIV></DIV><!-- end of summary line -->
<DIV class=overflow id=text>关于jdbc的1,2,3,4.<BR>flyblue转载自java技?[2000-11-16]<BR><BR><BR>题目中所说的\"1,2,3,4\" 实际上是指jdbc驱动的四种类型.本文将对jdbc driver <BR>的四种类型以及不同类型的driver适合于哪种层次的应用做一个简单介绍, <BR>如果你现在正准备开发有关数据库的java应用,你也许会需要从网上下载相关数据库的jdbc <BR>driver .在下载网页上你可能会发现这样的说明\"this is a type 4 drvier\"或this is type 3 driver那 <BR>么到底应该下载哪一个,下载后的driver是否适合我们要开发的应用呢?还是让我们先解释 <BR>一下这四种类型的具体含义吧。 <BR>type 1:jdbc-odbc桥 <BR>type 2:本地api驱动 <BR>type 3:网络协议驱动 <BR>type 4:本地协议驱动 <BR><BR>Type 1: jdbc-odbc桥 <BR>Jdbc-odbc 桥 是sun公司提供的，是jdk提供的的标准api. 这种类型的驱动实际是把所有 <BR>jdbc的调用传递给odbc ,再由odbc调用本地数据库驱动代码.( 本地数据库驱动代码是指 <BR>由数据库厂商提供的数据库操作二进制代码库,例如在oracle for windows中就是oci dll 文 <BR>件) <BR><BR><BR>jdbc-odbc桥 <BR>| <BR>odbc <BR>| <BR>厂商DB代码---------------数据库Server <BR><BR><BR><BR>(图一) <BR><BR>只要本地机装有相关的odbc驱动那么采用jdbc-odbc桥几乎可以访问所有的数据库,jdbc- <BR>odbc方法对于客户端已经具备odbc driver的应用还是可行的.但是,由于jdbc-odbc先调用 <BR>odbc再由odbc去调用本地数据库接口访问数据库.所以,执行效率比较低,对于那些大数据量 <BR>存取的应用是不适合的.而且,这种方法要求客户端必须安装odbc 驱动,所以对于基于 <BR>internet ,intranet的应用也是不合适的.因为,你不可能要求所有客户都能找到odbc driver. <BR><BR>Type 2: 本地Api驱动 <BR>本地api驱动直接把jdbc调用转变为数据库的标准调用再去访问数据库.这种方法需要本地 <BR>数据库驱动代码. <BR><BR><BR><BR>本地api驱动 <BR>| <BR>厂商DB代码---------------数据库Server <BR><BR><BR>(图二) <BR>这种驱动比起jdbc-odbc桥执行效率大大提高了.但是,它仍然需要在客户端加载数据库厂商 <BR>提供的代码库.这样就不适合基于internet的应用.并且,他的执行效率比起3,4型的jdbc驱动 <BR>还是不够高. <BR><BR>Type3:网络协议驱动 <BR>这种驱动实际上是根据我们熟悉的三层结构建立的. jdbc先把对数局库的访问请求传递给网 <BR>络上的中间件服务器. 中间件服务器再把请求翻译为符合数据库规范的调用,再把这种调用 <BR>传给数据库服务器.如果中间件服务器也是用java开法的,那么在在中间层也可以使用1,2型 <BR>jdbc驱动程序作为访问数据库的方法. <BR><BR><BR>网络协议驱动---------中间件服务器------------数据库Server <BR><BR>( 图三) <BR><BR><BR>由于这种驱动是基于server的.所以,它不需要在客户端加载数据库厂商提供的代码库.而且 <BR>他在执行效率和可升级性方面是比较好的.因为大部分功能实现都在server端,所以这种驱动 <BR>可以设计的很小,可以非常快速的加载到内存中. 但是,这种驱动在中间件层仍然需要有配置 <BR>其它数据库驱动程序,并且由于多了一个中间层传递数据,它的执行效率还不是最好. <BR><BR><BR>Type4 本地协议驱动 <BR>这种驱动直接把jdbc调用转换为符合相关数据库系统规范的请求.由于4型驱动写的应用可 <BR>以直接和数据库服务器通讯.这种类型的驱动完全由java实现,因此实现了平台独立性. <BR><BR>本地协议驱动---------数据库Server <BR><BR>( 图四) <BR><BR>由于这种驱动不需要先把jdbc的调用传给odbc或本地数据库接口或者是中间层服务器.所 <BR>以它的执行效率是非常高的.而且,它根本不需要在客户端或服务器端装载任何的软件或驱动. <BR>这种驱动程序可以动态的被下载.但是对于不同的数据库需要下载不同的驱动程序. <BR><BR><BR>以上对四种类型的jdbc驱动做了一个说明.那么它们适合那种类型的应用开发呢? <BR>Jdbc-odbc桥由于它的执行效率不高,更适合做为开发应用时的一种过度方案,或着对于初学 <BR>者了解jdbc编程也较适用. <BR>对于那些需要大数据量操作的应用程序则应该考虑2,3,4型驱动.在intranet方面的应用可以 <BR>考虑2型驱动,但是由于3,4型驱动在执行效率上比2型驱动有着明显的优势,而且目前开发 <BR>的趋势是使用纯java.所以3,4型驱动也可以作为考虑对象. <BR>至于基于internet方面的应用就只有考虑3,4型驱动了. 因为3型驱动可以把多种数据库驱 <BR>动都配置在中间层服务器.所以3型驱动最适合那种需要同时连接多个不同种类的数据库, <BR>并且对并发连接要求高的应用. 4型驱动则适合那些连接单一数据库的工作组应用. <BR><BR>说了这么多,那么相关的jdbc驱动应该在哪里下载呢?实际上各大数据库厂商 <BR>(oracle,sybase,db2)对jdbc多都有很好的支持(微软例外).你可以到他们的官方站点去下载. <BR>由于微软一直没有开发sqlserver的jdbc驱动,所以只好用其他厂商提供的驱动.这里向大家 <BR>推荐几个站点 <BR>http://www.idssoftware.com/jdbcdrv.html (3型) <BR>http://www.jturbo.com/ (4型) <BR>http://www.inetsoftware.de/(4型) <BR>特别推荐I-net Sprinta 2000 的sqlserver驱动,因为他的驱动只有47K没有时间限制,并且是4 <BR>型驱动. <BR><BR>对于在编程时如何用JDBC建立连接,本文就不做详细介绍了.读者可以在jdk中找到例子,目 <BR>录为jdk/demo/jfc/dbdemos. 如果你下载其他厂商的驱动程序在压缩文件中会有例子. <BR>如果你在applet中调用jdbc驱动访问数据库一定要注意web server和 数据库 server一定 <BR>要在同一台机器.这是java applet 安全规范所要求的. </DIV><img src ="http://www.blogjava.net/gust/aggbug/32691.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/gust/" target="_blank">椰子</a> 2006-02-27 16:52 <a href="http://www.blogjava.net/gust/articles/32691.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>