⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 intro.doc.html

📁 JDBC入门中文文档
💻 HTML
📖 第 1 页 / 共 2 页
字号:

<h3>1.1.5 SQL 的一致性</h3>

<p>结构化查询语言 (SQL) 
是访问关系数据库的标准语言。困难之处在于:虽然大多数的 DBMS 
(数据库管理系统)对其基本功能都使用了标准形式的 SQL,但它们却不符合最近为更高级的功能定义的标准 
SQL 
语法或语义。例如,并非所有的数据库都支持储存程序或外部连接,那些支持这一功能的数据库又相互不一致。人们希望 
SQL 
中真正标准的那部份能够进行扩展以包括越来越多的功能。但同时 
JDBC API 又必须支持现有的 SQL。</p>

<p><a name="1005808"></a>JDBC API 
解决这个问题的一种方法是允许将任何查询字符串一直传到所涉及的 
DBMS 驱动程序上。这意味着应用程序可以使用任意多的 SQL 
功能,但它必须冒这样的风险:有可能在某些 DBMS 
上出错。事实上,应用程序查询甚至不一定要是 SQL,或者说它可以是个为特定的 
DBMS 设计的 SQL 的专用派生物(例如,文档或图象查询)。</p>

<p><a name="1005809"></a>JDBC 处理 SQL 一致性问题的第二种方法是提供 ODBC 
风格的转义子句。这将在 <a href="statement.doc.html#999828">4.1.5</a> 
节“语句对象中的 SQL 转义语法”中讨论。</p>

<p><a name="1006033"></a>转义语法为几个常见的 SQL 分歧提供了一种标准的 
JDBC 语法。例如,对日期文字和已储存过程的调用都有转义语法。</p>

<p><a name="1005813"></a>对于复杂的应用程序,JDBC 用第三种方法来处理 
SQL 的一致性问题。它利用 <code>DatabaseMetaData</code> 接口来提供关于 
DBMS 的描述性信息,从而使应用程序能适应每个 DBMS 的要求和功能。</p>

<p><a name="1005817"></a>由于 JDBC API 将用作开发高级数据库访问工具和 API 
的基础 API,因此它还必须注意其所有上层建筑的一致性。“符合 JDBC 
标准<font size="-1"><sup>TM</sup></font>&quot; 代表用户可依赖的 JDBC 
功能的标准级别。要使用这一说明,驱动程序至少必须支持 ANSI SQL-2 
Entry Level(ANSI SQL-2 代表美国国家标准局 1992 年所采用的标准。Entry 
Level 代表 SQL 功能的特定清单)。驱动程序开发人员可用 JDBC API 
所带的测试工具包来确定他们的驱动程序是否符合这些标准。</p>

<p><a name="1005818"></a>“符合 JDBC 标准<font size="-1"><sup>TM</sup></font>” 
表示提供者的 JDBC 实现已经通过了 JavaSoft 
提供的一致性测试。这些一致性测试将检查 JDBC API 
中定义的所有类和方法是否都存在,并尽可能地检查程序是否具有 
SQL Entry Level 功能。当然,这些测试并不完全,而且 JavaSoft 
目前也无意对各提供者的实现进行标级。但这种一致性定义的确可对 
JDBC 
实现提供一定的可信度。随着越来越多的数据库提供者、连接提供者、Internet 
提供者和应用程序编程员对 JDBC API 的接受,JDBC 也正迅速成为 Java 
数据库访问的标准。</p>

<p><a name="1005819"></a> </p>

<h2>1.2&nbsp; JDBC 产品</h2>

<p><a name="1006126"></a>在编写本文时,有几个基于 JDBC 
的产品已开发完毕或正在开发中。当然,本节中的信息将很快成为过时信息。因此,有关最新的信息,请查阅 
JDBC 的网站,可通过从以下 URL 开始浏览找到: </p>

<pre><a name="1005822"></a>    http://java.sun.com/products/jdbc
</pre>

<p><a name="1005824"></a> </p>

<h3>1.2.1 JavaSoft 框架</h3>

<p><a name="1005825"></a>JavaSoft 提供三种 JDBC 产品组件,它们是 Java 
开发工具包 (JDK) 的组成部份: 

<ul>
  <p><a name="1005826"></a></p>
  <li>JDBC 驱动程序管理器,<br>
    <br>
    <a name="1005827"></a> </li>
  <li>JDBC 驱动程序测试工具包,和 <br>
    <br>
    <a name="1005828"></a> </li>
  <li>JDBC-ODBC 桥。<br>
    <br>
  </li>
</ul>

<p><a name="1005829"></a>JDBC 驱动程序管理器是 JDBC 
体系结构的支柱。它实际上很小,也很简单;其主要作用是把 Java 
应用程序连接到正确的 JDBC 驱动程序上,然后即退出。</p>

<p><a name="1005830"></a>JDBC 驱动程序测试工具包为使 JDBC 
驱动程序运行您的程序提供一定的可信度。只有通过 JDBC 
驱动程序测试包的驱动程序才被认为是符合 JDBC 标准<font size="-1"><sup>TM</sup></font> 
的。</p>

<p><a name="1005831"></a>JDBC-ODBC 桥使 ODBC 驱动程序可被用作 JDBC 
驱动程序。它的实现为 JDBC 
的快速发展提供了一条途径,其长远目标提供一种访问某些不常见的 
DBMS(如果对这些不常见的 DBMS 未实现 JDBC) 的方法。<br>
<br>
<img src="intro.doc.anc2.gif" width="442" height="246"><br>
</p>

<p><a name="1005870"></a> </p>

<h3>1.2.2 JDBC 驱动程序的类型</h3>

<p>我们目前所知晓的 JDBC 驱动程序可分为以下四个种类: 

<ol>
  <p><a name="1005872"></a></p>
  <li><em>JDBC-ODBC 桥加 ODBC 驱动程序:</em>JavaSoft 桥产品利用 ODBC 
    驱动程序提供 JDBC 访问。注意,必须将 ODBC 
    二进制代码(许多情况下还包括数据库客户机代码)加载到使用该驱动程序的每个客户机上。因此,这种类型的驱动程序最适合于企业网(这种网络上客户机的安装不是主要问题),或者是用 
    Java 编写的三层结构的应用程序服务器代码。<a name="1005873"></a> </li>
  <li><em>本地 API - 部份用 Java 来编写的驱动程序: </em>这种类型的驱动程序把客户机 
    API 上的 JDBC 调用转换为 Oracle、 Sybase、Informix、DB2 或其它 DBMS 
    的调用。注意,象桥驱动程序一样,这种类型的驱动程序要求将某些二进制代码加载到每台客户机上。<a
    name="1005874"></a> </li>
  <li><em>JDBC 网络纯 Java 驱动程序:</em>这种驱动程序将 JDBC 转换为与 DBMS 
    无关的网络协议,之后这种协议又被某个服务器转换为一种 DBMS 
    协议。这种网络服务器中间件能够将它的纯 Java 
    客户机连接到多种不同的数据库上。所用的具体协议取决于提供者。通常,这是最为灵活的 
    JDBC 驱动程序。有可能所有这种解决方案的提供者都提供适合于 
    Intranet 用的产品。为了使这些产品也支持 Internet 
    访问,它们必须处理 Web 
    所提出的安全性、通过防火墙的访问等方面的额外要求。几家提供者正将 
    JDBC 驱动程序加到他们现有的数据库中间件产品中。<a name="1005875"></a> 
  </li>
  <li><em>本地协议纯 Java 驱动程序:</em>这种类型的驱动程序将 JDBC 
    调用直接转换为 DBMS 
    所使用的网络协议。这将允许从客户机机器上直接调用 DBMS 
    服务器,是 Intranet 
    访问的一个很实用的解决方法。由于许多这样的协议都是专用的,因此数据库提供者自己将是主要来源,有几家提供者已在着手做这件事了。</li>
</ol>

<p>最后,我们预计第 3、4 类驱动程序将成为从 JDBC 
访问数据库的首选方法。第 1、2 类驱动程序在直接的纯 Java 
驱动程序还没有上市前将会作为过渡方案来使用。对第 1、2 
类驱动程序可能会有一些变种(下表中未列出),这些变种要求有连接器,但通常这些是更加不可取的解决方案。第 
3、4 类驱动程序提供了 Java 
的所有优点,包括自动安装(例如,通过使用 JDBC 驱动程序的 applet 
applet来下载该驱动程序)。</p>

<p><a name="1005877"></a>下表显示了这 4 种类型的驱动程序及其属性: </p>

<p><a name="1005909"></a> </p>

<table Border="3">
  <tr>
    <th valign="top">驱动程序种类 </th>
    <th valign="top">纯 JAVA? </th>
    <th valign="top">网络协议 </th>
  </tr>
  <tr>
    <td>1 - JDBC-OCBC 桥 </td>
    <td>非 </td>
    <td>直接 </td>
  </tr>
  <tr>
    <td>2 - 基于本地 API 的 </td>
    <td>非 </td>
    <td>直接 </td>
  </tr>
  <tr>
    <td>3 - JDBC 网络的 </td>
    <td>是 </td>
    <td>要求连接器 </td>
  </tr>
  <tr>
    <td>4 - 基于本地协议的 </td>
    <td>是 </td>
    <td>直接 </td>
  </tr>
</table>

<table>
  <tr>
    <td></td>
  </tr>
</table>

<p><a name="1005911"></a> </p>

<h3>1.2.3&nbsp; JDBC 驱动程序的获取</h3>

<p><a name="1005912"></a>在编写本文时,已有几十个属于种类的驱动程序,即可与 
Javasoft 桥联合使用的 1: ODBC 
驱动程序的驱动程序。有大约十多个属于种类 2 的驱动程序是以 DBMS 
的本地 API 为基础编写的。只有几个属于种类 3 
的驱动程序。目前至少有 2 个属于种类 4 的驱动程序,但到 1997 
年底,我们预计主要的 DBMS 都会有种类 4 的驱动程序。</p>

<p><a name="1005913"></a>要获取关于驱动程序的最新信息,请查阅 JDBC 
的网站,其网址为: <code>http:// java.sun.com/products/jdbc</code>。提供第 3 
种驱动程序的首批提供者是 SCO、Open Horizon、Visigenic 和 WebLogic。JavaSoft 
和数据库连接的领先提供者 Intersolv 合作研制了 JDBC-ODBC 桥和 JDBC 
驱动程序测试工具包。</p>

<p><a name="1005915"></a> </p>

<h3>1.2.4 其它产品</h3>

<p><a name="1005916"></a>各种 JDBC 
应用程序的开发工具正在开发中。请注意查阅 JavaSoft 
网页以得到更新信息。</p>

<p><a name="1005917"></a> </p>

<p><br>
</p>

<hr>

<p><font size="-1"><a href="introTOC.doc.html">目录</a> | <a href="copyright.doc.html">上一页</a> 
| <a href="connection.doc.html">下一页</a> </font></p>

<hr>

<address>
  <a href="mailto:jdbc@wombat.eng.sun.com">jdbc@wombat.eng.sun.com</a> 或 <a
  href="mailto:jdbc-odbc@wombat.eng.sun.com">jdbc-odbc@wombat.eng.sun.com</a> 
</address>

<p><a href="copyright.doc.html"><font size="-1"><i>版权所有 &copy; 1996, 1997 Sun 
Microsystems, Inc. 保留所有权利</i></font>。</a><!-- HTML generated by dkramer on March 14, 1997 --> </p>
</body>
</html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -