📄 bridge.doc.html
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<meta HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=gb2312">
<title></title>
</head>
<body bgcolor="#ffffff">
<table width="600">
<tr>
<td><font size="-1"><a href="introTOC.doc.html">目录</a> | <a
href="SimpleSelect.doc.html">上一页</a> | 下一页 </font></td>
<td align="right"><i>JDBC<sup><font size="-2">TM</font></sup> 指南: 入门</i></td>
</tr>
</table>
<hr>
<p><br>
<a name="996747"></a> </p>
<h1>10 - JDBC-ODBC 桥驱动程序 </h1>
<a name="997135"></a>
<h2>10.1 JDBC-ODBC 桥</h2>
<p>如果可能,则使用纯 Java JDBC 驱动程序代替桥和 ODBC
驱动程序。这便完全省去了 ODBC 所需的客户机配置。也免除了 Java虚拟机被桥引入的本地代码(即桥本地库、ODBC
驱动程序管理器库、ODBC
驱动程序库和数据库客户机库)中的错误所破坏的可能性。 </p>
<p><a name="996913"></a> </p>
<h3>10.1.1 什么是 JDBC-ODBC 桥? </h3>
<p>JDBC-ODBC 桥是一个 JDBC 驱动程序,它通过将 JDBC 操作转换为 ODBC
操作来实现 JDBC 操作。对 ODBC,它象是通常的应用程序。桥为所有对
ODBC 可用的数据库实现 JDBC。它作为 <code>sun.jdbc.odbc</code> Java
包实现,其中包含一个用来访问 ODBC 的本地库。桥是 Intersolv 和
JavaSoft 联合开发的。 </p>
<p><a name="996914"></a> </p>
<h3>10.1.2 支持 ODBC 的哪一版本?</h3>
<p>桥支持 ODBC 2.x。这是当前大多数 ODBC
驱动程序支持的版本。它还可能支持即将出台的 ODBC 3.x
驱动程序;但还未经测试。 </p>
<p><a name="996915"></a> </p>
<h3>10.1.3 桥实现</h3>
<p>桥用 Java 实现,并使用 Java 本地方法调用 ODBC。 </p>
<p><a name="996916"></a> </p>
<h3>10.1.4 安装</h3>
<p>桥作为包 <code>sun.jdbc.odbc</code> 与 JDK
一起自动安装。有关安装和配置 ODBC 的信息,请咨询 ODBC
驱动程序厂商。桥无须特殊配置。有关客户机安装和配置信息,请咨询数据库厂商。在
Solaris 中,一些 ODBC 驱动程序管理器将库命名为 <code>libodbcinst.so</code>
和 <code>libodbc.so</code>。而桥希望将这些库命名为 <code>libodbcinst.so.1</code>
和 <code>libodbc.so.1</code>,因此必须为这些名称创建符号链接。 </p>
<p><a name="996917"></a> </p>
<h2>10.2 使用桥 </h2>
<p>通过 <code>odbc</code> 子协议,使用 URL 打开 JDBC 连接即可使用桥。
请参阅下面的 URL 示例。建立连接前,必须将桥驱动程序类 <code>sun.jdbc.odbc.JdbcOdbcDriver</code>
添加到名为 <code>jdbc.drivers</code> 的 <code>java.lang.System</code>
属性中,或用 Java
类加载器将其显式地加载。可以用以下一行代码进行桥的显式加载:
</p>
<pre><a name="996978"></a> Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
</pre>
<p>加载时,ODBC 驱动程序(与所有好的 JDBC
驱动程序一样)将创建它自己的实例,同时在 JDBC
驱动程序管理器中进行注册。 </p>
<p><a name="996918"></a> </p>
<h3>10.2.1 从 applet 中使用桥</h3>
<p>使用纯 Java JDBC 驱动程序的 JDBC 在 applet
中运行良好。桥驱动程序不能很好地与 applet 协同运行。 </p>
<p><a name="996919"></a> </p>
<h3>10.2.2 大多数浏览器不支持桥</h3>
<p>因为桥是 JDK
的可选组件,所以浏览器可能不提供它。即使提供,也只有可信任的
applet(允许对文件进行写操作的)才能使用桥。这是保证 applet
沙箱安全所必需的。最后,即使 applet
是可信任的,也必须在每个客户机上配置 ODBC 和 DBMS 客户机库。 </p>
<p><a name="996920"></a> </p>
<h3>10.2.3 经过测试的配置 </h3>
<p>在 Solaris 中,我们使用桥访问在 Solaris 上运行的 Oracle 7.1.6 和 Sybase
10。在 NT 中,我们使用桥来访问 SQL Server 6.x。 </p>
<p><a name="996921"></a> </p>
<h3>10.2.4 可以与桥搭配使用的已知 ODBC 驱动程序</h3>
<p>Visigenic 提供已和桥测试过的 ODBC 驱动程序。驱动程序可用于 Oracle、Sybase、Informix、Microsoft
SQL Server 和 Ingres。要购买 ODBC DriverSet 2.0,请与 Visigenic
销售部门联系(415-312-7197),或访问网站 <code>www.visigenic.com</code>。INTERSOLV
ODBC 驱动程序套件应该与 JDBC-ODBC 桥完全兼容。
以下驱动程序已成功通过了最小测试:Oracle、xBASE、Sybase(仅 Windows
NT/95)、Microsoft SQL-Server 和 Informix。 要评估或购买 INTERSOLV ODBC
驱动程序,请与 INTERSOLV DataDirect 销售部门联系(1- 800-547-4000 选项 2)或访问网站
<code>http:\\www.intersolv.com</code>。MS SQL Server 驱动程序已在 NT
上成功使用。其它许多 ODBC 驱动程序不久也将成功运行。 </p>
<p><a name="996922"></a> </p>
<h3>10.2.5 ODBC 驱动程序不兼容性</h3>
<p>在 Solaris 中,我们发现 Sybase 基于 ctlib 的驱动程序不能运行,因为
ctlib 与 Java 虚拟机有信号处理冲突。 因为 NT Java 虚拟机与 Solaris
的有所不同,所以这可能不是 NT 的问题;但这一点还未证实。 一些
ODBC 驱动程序在每次连接中仅允许一个结果集是活跃的。 </p>
<p><a name="996923"></a> </p>
<h3>10.2.6 桥支持什么 JDBC URL? </h3>
<p>桥驱动程序使用 <code>odbc</code> 子协议。 该子协议的 URL
为以下形式: </p>
<pre><a name="997124"></a> <code>jdbc:odbc:<data-source-name>[<attribute-name>=<attribute-value>]*
</code></pre>
<p>例如: </p>
<pre><a name="997006"></a> jdbc:odbc:sybase
<a name="997007"></a> jdbc:odbc:mydb;UID=me;PWD=secret
<a
name="997013"></a> jdbc:odbc:ora123;Cachesize=300
</pre>
<a name="996924"></a>
<h3>10.2.7 调试</h3>
<p>启用 <code>DriverManager</code> 跟踪时,桥提供很多跟踪信息。
下面一行代码将启用跟踪,并将其发送到标准输出: </p>
<pre><a name="997072"></a> java.sql.DriverManager.setLogStream(java.lang.System.out);
</pre>
<a name="996927"></a>
<h2>10.3 一般注意事项</h2>
<p>桥假定 ODBC 驱动程序是不可重入的。
即桥必须同步地访问这些驱动程序。
结果是:桥只能提供有限的同时性。 这是桥的局限。 大多数纯 Java
JDBC 驱动程序能提供所需级别的同时访问功能。 </p>
<p><a name="996877"></a> </p>
<p><br>
</p>
<hr>
<font size="-1"><a href="introTOC.doc.html">
<p>目录</a> | <a href="SimpleSelect.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>
<a href="copyright.doc.html"><font size="-1"><i>
<p>版权所有 ?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 + -