一般说明
IBM公司的数据库产品线中不同版本提供的数据访问API可以说是很多了,其中包括早期的基于CLI的驱动,最近的纯Java的驱动,以及CLI和 Java的组合.对于特定的DB2版本的驱动有特定的驱动也有通用的驱动,这是很明显的.但是诸多版本的数据库系统和诸多版本的访问驱动,放在客户面前,它们之间的关系显得有些纷繁.所以在使用IBM的数据库产品时,头脑中一定要注意版本对应和选择适当的通用驱动.还好,IBM已经开始走向统一了,也开始注意易用性了,这些努力从DB2 UDB V7就开始了.从那时开始,按照Java领域JDBC驱动的类型划分,IBM有了三类驱动了.
DB2的JDBC TYPE 2 驱动使 Java 应用程序通过JDBC调用DB2.对 DB2 JDBC type 2 driver 的调用被转换成 Java 本地方法.Java 使用这种驱动程序的应用程序必须运行在一个 DB2 客户机上,JDBC 请求通过这个客户机转到 DB2 服务器.在使用 DB2 JDBC 应用程序驱动程序访问 DB2 UDB for iSeries 数据源或者 DB2 for OS/390 或 z/OS 环境中的数据源之前,必须安装 DB2 Connect Version 8.DB2 JDBC type 2 driver 支持 JDBC 1.2 规范中描述的大部分 JDBC 和 SQLJ 函数,并且支持 JDBC 2.0 规范中描述的一些函数.
DB2的JDBC TYPE 3 驱动,也被称为applet 或net driver,它由一个JDBC 客户机和一个JDBC 服务器(该进程的名字是db2jd)组成.既可以在Applet中使用也可以在应用程序中使用.
DB2的JDBC TYPE 4 驱动被称为通用驱动,是纯Java实现的,该驱动也支持SQLJ.
目前IBM一直都没有提供 TYPE 1的JDBC驱动程序.
这些类型驱动程序所在的包是:db2jcc.jar 和 sqlj.zip 文件,sqllib\bin\db2jcct2.dll(该文件是 TYPE2所必需的).
使用
在使用 JDBC 连接 DB2 UDB V7.2 和 DB2 UDB V8.1 时,如果碰到一些令人费解的问题,可以检查一下开发环境使用的JDK,在IBM提供的已知JDK中切换(目前有1.3和1.4版本),往往就能解决你的问题。
DB2 UDB V8.2个人版本中,下面的测试代码测试了三种连接方式,并给出了结果:
import java.sql.*;
public class Employee {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Employee ee = new Employee();
try {
ee.testJcc();//成功
ee.testNet();//成功
ee.testApp();//失败,原因是:类型2需要安装DB2访问客户端,测试没有安装.如果要通过类型2访问远程数据库,可以把远程数据库编目到本地后即可.
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 测试驱动体系结构为类型4驱动:com.ibm.db2.jcc.DB2Driver, 该驱动位于包db2jcc.jar中.
*
* @throws InstantiationException
* @throws IllegalAccessException
* @throws ClassNotFoundException
* @throws SQLException
*/
public void testJcc() throws InstantiationException,
IllegalAccessException, ClassNotFoundException, SQLException {
Class.forName("com.ibm.db2.jcc.DB2Driver").newInstance();
String url = "jdbc:db2://192.168.0.17:50000/SAMPLE";
Connection con = DriverManager.getConnection(url, "db2admin", "cherub");
con.setAutoCommit(false);
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("select * from Employee");
while (rs.next()) {
System.out.println(rs.getString(1) + "," + rs.getString(2));
}
}
/**
* 测试驱动体系结构为类型3驱动:COM.ibm.db2.jdbc.net.DB2Driver, 该驱动位于包 db2java.zip中.
*
* @throws InstantiationException
* @throws IllegalAccessException
* @throws ClassNotFoundException
* @throws SQLException
*/
public void testNet() throws InstantiationException,
IllegalAccessException, ClassNotFoundException, SQLException {
Class.forName("COM.ibm.db2.jdbc.net.DB2Driver").newInstance();
// 目标DB2系统侦听该服务于默认端口6789,否则还需要在 URL Pattern 中指定目标端口号
String url = "jdbc:db2:192.168.0.17:SAMPLE";
Connection con = DriverManager.getConnection(url, "db2admin", "cherub");
con.setAutoCommit(false);
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("select * from Employee");
while (rs.next()) {
System.out.println(rs.getString(1) + "," + rs.getString(2));
}
}
/**
* 测试驱动体系结构为类型2驱动:COM.ibm.db2.jdbc.app.DB2Driver, 该驱动也位于包 db2java.zip中.
*
* @throws InstantiationException
* @throws IllegalAccessException
* @throws ClassNotFoundException
* @throws SQLException
*/
public void testApp() throws InstantiationException,
IllegalAccessException, ClassNotFoundException, SQLException {
Class.forName("COM.ibm.db2.jdbc.app.DB2Driver").newInstance();
String url = "jdbc:db2:sample";
Connection con = DriverManager.getConnection(url, "db2admin", "cherub");
con.setAutoCommit(false);
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("select * from Employee");
while (rs.next()) {
System.out.println(rs.getString(1) + "," + rs.getString(2));
}
}
}
分享到:
相关推荐
### IBM DB2 驱动类型 IBM DB2 驱动主要有以下几种类型: 1. **ODBC (Open Database Connectivity) 驱动**:提供了一个标准的应用程序编程接口(API),使得不同平台上的应用能访问各种数据库,包括DB2。 2. **...
本文将深入探讨DB2驱动的相关知识点,包括其作用、版本兼容性、驱动类型以及在Kettle数据转换中的应用。 首先,`db2java.zip`是一个包含DB2 JDBC驱动的压缩文件。JDBC驱动是Java程序连接数据库的标准方式,它提供了...
DB2驱动JAR包通常包含不同类型的JDBC驱动,如类型1、2、3和4,但现代应用主要使用类型4,即纯Java网络驱动,因为它无需依赖本地数据库客户端。 在Java应用中使用DB2驱动JAR包,首先需要将其添加到项目的类路径...
在这个例子中,`Class.forName()`方法加载了DB2驱动的类,`DriverManager.getConnection()`方法则建立到数据库的实际连接。确保将URL、用户名和密码替换为实际的数据库信息。 总之,DB2 9.7的jar包是Java开发者与...
db2jcc4.jar: DB2数据库驱动包,用于连接DB2数据库。 ... 下载db2jcc4.jar到本地。 在DBeaver中新建连接。新连接类型选择 DB2 LUW,在“编辑驱动设置”处点击”添加文件“。 将此jar包引入。即可正常连接到DB2数据库。
DB2驱动包通常提供类型4驱动,即“网络协议”驱动,以实现高效、高性能的连接。 3. **驱动包内容** DB2驱动包JAR文件通常包含以下组件: - JDBC驱动类:实现JDBC接口的类,如`com.ibm.db2.jcc.DB2Driver`,用于...
在运行包含db2jcc4.jar的Java应用程序时,这个许可证文件是必需的,因为它验证了你的应用程序是否具有合法使用DB2驱动的权利。如果没有这个文件,即使有db2jcc4.jar,也无法成功连接到DB2数据库。 安装和使用这两个...
DB2驱动程序是连接Java应用程序与IBM DB2数据库的关键组件,尤其在Java-jcc(Java Connectivity Client)和ODBC(Open Database Connectivity)14版本中,它们提供了高效且可靠的数据库访问方式。以下是对这些资源的详细...
DB2驱动工具包是IBM公司提供的用于连接和操作DB2数据库的重要组件。DB2是一款功能强大的关系型数据库管理系统,广泛应用于企业级应用、数据分析、云计算等领域。在这个工具包中,主要包括了以下几个关键的JAR(Java ...
DB2驱动提供了多种类型的支持,包括标准JDBC API(如`Class.forName("com.ibm.db2.jcc.DB2Driver")`来加载驱动)、DataSource接口(通过`java.sql.DataSource`实例化)以及JNDI(Java Naming and Directory ...
安装并配置DB2驱动包后,开发者可以在Java应用中使用JDBC API建立到DB2数据库的连接,执行SQL语句,处理结果集,并实现事务控制等功能。在实际项目中,这通常是通过在Java代码中加载JDBC驱动,创建数据库连接,编译...
本资源提供的“JDBC连接DB2驱动包”是IBM官方授权的正版驱动程序,确保了与DB2数据库连接的稳定性和安全性。这个驱动包包括两个主要的组件: 1. **db2jcc.jar**:这是DB2的JDBC类型4驱动程序,它是一个纯Java实现,...
值得注意的是,DB2驱动的使用可能需要相应的许可证,特别是当你在商业环境中部署时。此外,为了安全起见,建议使用连接池来管理数据库连接,而不是每次需要时都创建新的连接。 总之,`db2jcc4.jar`是连接Java应用...
2. **NET驱动**(COM.ibm.db2.jdbc.net.DB2Driver):也称为类型4驱动,是纯Java实现,通过网络连接到DB2服务器,不依赖于本地操作系统或DB2客户端。 3. **JCC驱动**(com.ibm.db2.jcc.DB2Driver):是类型4的驱动,...
DB2驱动程序是连接到IBM DB2数据库的关键组件,它使得Java应用程序能够与DB2数据库进行通信。在Java环境中,这些驱动通常以JAR(Java Archive)文件的形式存在,以便于Java虚拟机(JVM)加载并使用。在这个压缩包中,...
`db2jcc_license_cu.jar`文件则包含了DB2驱动程序的许可证信息。在使用DB2 JDBC驱动时,这个文件是必要的,因为它验证了对DB2产品的合法使用权。如果没有这个许可证文件,JDBC驱动将无法正确加载,导致连接失败。 ...
类型2驱动依赖于本地DB2客户端,而类型4驱动是纯Java实现,直接通过网络与DB2服务器通信。以下是如何使用DB2 JDBC驱动建立连接的示例: ```java Class.forName("com.ibm.db2.jcc.DB2Driver"); Connection conn =...
**JDBC DB2驱动详解** Java Database Connectivity (JDBC) 是Java编程语言中用于与数据库交互的一种标准接口。它允许Java应用程序连接到各种类型的数据库,包括IBM的DB2数据库系统。DB2是一款功能强大的关系型...
标题中的“可用的db2驱动”指的是DB2数据库连接驱动,它是用于连接应用程序与DB2数据库的关键组件。 在Java编程环境中,常用的DB2驱动包括JDBC(Java Database Connectivity)驱动。JDBC驱动主要有四种类型:类型1...
3. **JDBC驱动类型**: - 类型1:纯Java的驱动,只适用于简单的任务,因为它们依赖于ODBC桥接。 - 类型2:部分Java,部分本地代码,通常用于提高性能。 - 类型3:完全基于Java的网络驱动,不需本地数据库接口。 ...