论文部分内容阅读
1 JDBC-ODBC桥的工作原理
JDBC-ODBC(Open Database Connectivity,ODBC)桥驱动程序由Sun与Merant公司联合开发,主要功能是把JDBC API调用转换成ODBC API调用,然后ODBC API调用针对供应商的ODBC驱动程序来访问数据库,即利用JDBC-ODBC桥通过ODBC来存取数据源,其应用模式如图1所示。
图1 JDBC-ODBC桥应用模式
从图1可以看出,JDBC-ODBC桥是一个JDBC驱动程序,对ODBC而言,它像是通用的应用程序,桥为所有适用于ODBC的数据库实现JDBC。它作为sun.jdbc.odbc包实现,其中包含一个用来访问ODBC的本地库。由于ODBC被广泛地使用,所以桥的优点是让JDBC能够访问几乎所有的数据库。桥支持ODBC 2.x,这是当前大多数据ODBC驱动程序支持的版本。桥作为包sun.jdbc.odbc与JDK一起自动安装,无需特殊配置。
2 JDBC-ODBC桥所用DNS的配置
Java 2 SDK类库中包含了用于JDBC-ODBC桥接驱动程序的类,因此不再需要安装任何附加包就可以使用。但是客户机需要通过生成数据源名(Data Source Names,DSN)来配置ODBC管理器。DSN是一个把数据库、驱动程序、一些可选的设置连接起来的命名配置。具体配置方法如下(在Windows XP环境下):
(1)在Windows→Start→控制面板中,打开性能与维护→管理工具→数据源(ODBC);
(2)在ODBC数据源管理器中的“系统DSN”中添加系统数据源,要注意,一定要用系统(DSN)数据源,不能用用户(DSN)数据源,因为servlet是伪系统(DSN),所有的jsp、servlet程序,需要连接jdbc-odbc驱动的话,都只能用系统(DSN)数据源,不能用用户(DSN)数据源。
3 加载JDBC-ODBC桥驱动程序
应用程序使用JDBC-ODBC桥连接数据库之前,必须将桥驱动程序类sun.jdbc.odbc.JdbcOdbcDriver添加到名为jdbc.drivers的java.lang.System属性中,或用Java类加载器将其显式地加载。可以用以下方式进行桥的显式加载: Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");加载时,ODBC驱动程序(与所有JDBC驱动程序一样)将创建它自己的实例,同时在JDBC驱动程序管理器进行注册。
4 通过JDBC-ODBC桥建立连接
与数据库建立连接的标准方法是调用DriverManager的方法,即DriverManager.getConnection方法。该方法接受含有某个URL的字符串。DriverManager类(即所谓的JDBC管理层)将尝试找到可与那个URL所代表的数据库进行连接的驱动程序。DriverManager类存有已注册的Driver类的清单。当调用方法getConnection时,它将检查清单中的每个驱动程序,直到找到可与URL中指定的数据库进行连接的驱动程序为止。
5 JDBC-ODBC桥的应用实例
连接一旦建立,就可用来向它所涉及的数据库传送SQL语句。JDBC对可被发送的SQL语句类型不加任何限制。这就提供了很大的灵活性,即允许使用特定的数据库语句,甚至于非SQL语句。然而,它要求用户自己负责确保所涉及的数据库可以处理所发送的SQL语句,否则将自食其果。示例如下:
importjava.sql.*;
publicclassJDBCTest
{
publicstaticvoidmain(Stringargs[])
{
Connectionconn;
Statementstmt;
ResultSetrecset;
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
conn=DriverManager.getConnection("jdbc:odbc:jdbctest","test","test");
stmt=conn.createStatement();
Stringquery="insertintouservalues('002','albert')";
stmt.execute(query);
stmt.close();
conn.close();
}
}
JDBC-ODBC(Open Database Connectivity,ODBC)桥驱动程序由Sun与Merant公司联合开发,主要功能是把JDBC API调用转换成ODBC API调用,然后ODBC API调用针对供应商的ODBC驱动程序来访问数据库,即利用JDBC-ODBC桥通过ODBC来存取数据源,其应用模式如图1所示。
图1 JDBC-ODBC桥应用模式
从图1可以看出,JDBC-ODBC桥是一个JDBC驱动程序,对ODBC而言,它像是通用的应用程序,桥为所有适用于ODBC的数据库实现JDBC。它作为sun.jdbc.odbc包实现,其中包含一个用来访问ODBC的本地库。由于ODBC被广泛地使用,所以桥的优点是让JDBC能够访问几乎所有的数据库。桥支持ODBC 2.x,这是当前大多数据ODBC驱动程序支持的版本。桥作为包sun.jdbc.odbc与JDK一起自动安装,无需特殊配置。
2 JDBC-ODBC桥所用DNS的配置
Java 2 SDK类库中包含了用于JDBC-ODBC桥接驱动程序的类,因此不再需要安装任何附加包就可以使用。但是客户机需要通过生成数据源名(Data Source Names,DSN)来配置ODBC管理器。DSN是一个把数据库、驱动程序、一些可选的设置连接起来的命名配置。具体配置方法如下(在Windows XP环境下):
(1)在Windows→Start→控制面板中,打开性能与维护→管理工具→数据源(ODBC);
(2)在ODBC数据源管理器中的“系统DSN”中添加系统数据源,要注意,一定要用系统(DSN)数据源,不能用用户(DSN)数据源,因为servlet是伪系统(DSN),所有的jsp、servlet程序,需要连接jdbc-odbc驱动的话,都只能用系统(DSN)数据源,不能用用户(DSN)数据源。
3 加载JDBC-ODBC桥驱动程序
应用程序使用JDBC-ODBC桥连接数据库之前,必须将桥驱动程序类sun.jdbc.odbc.JdbcOdbcDriver添加到名为jdbc.drivers的java.lang.System属性中,或用Java类加载器将其显式地加载。可以用以下方式进行桥的显式加载: Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");加载时,ODBC驱动程序(与所有JDBC驱动程序一样)将创建它自己的实例,同时在JDBC驱动程序管理器进行注册。
4 通过JDBC-ODBC桥建立连接
与数据库建立连接的标准方法是调用DriverManager的方法,即DriverManager.getConnection方法。该方法接受含有某个URL的字符串。DriverManager类(即所谓的JDBC管理层)将尝试找到可与那个URL所代表的数据库进行连接的驱动程序。DriverManager类存有已注册的Driver类的清单。当调用方法getConnection时,它将检查清单中的每个驱动程序,直到找到可与URL中指定的数据库进行连接的驱动程序为止。
5 JDBC-ODBC桥的应用实例
连接一旦建立,就可用来向它所涉及的数据库传送SQL语句。JDBC对可被发送的SQL语句类型不加任何限制。这就提供了很大的灵活性,即允许使用特定的数据库语句,甚至于非SQL语句。然而,它要求用户自己负责确保所涉及的数据库可以处理所发送的SQL语句,否则将自食其果。示例如下:
importjava.sql.*;
publicclassJDBCTest
{
publicstaticvoidmain(Stringargs[])
{
Connectionconn;
Statementstmt;
ResultSetrecset;
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
conn=DriverManager.getConnection("jdbc:odbc:jdbctest","test","test");
stmt=conn.createStatement();
Stringquery="insertintouservalues('002','albert')";
stmt.execute(query);
stmt.close();
conn.close();
}
}