JDBC ( Java Database Connectivity )是 SUN 公司提供的一套 Java API ( Application Progrmaming Interface )接口,用于连接各种数据库,可以对数据库进行增删改查操作,因为各大数据库厂商的数据库服务程序千差万别,所以 SUN 公司不可能为所有的数据库厂商提供接口, SUN 公司只提供访问数据库的规范和连接数据库的协议标准,之后各个数据库厂商遵循这套规范和标准,为需要访问各自公司的数据库的用户提供 JDBC API 接口,开发人员就可以利用这些 API 接口,通过 SQL 语句对不同厂商的数据库进行访问。
针对 Db2/400 , IBM 提供了两种 JDBC 驱动,一种是 IBM Toolbox for Java ,简称 Toolbox ,另一种是 IBM Developer Kit for Java JDBC Driver ,简称 Developer Kit 或 Native JDBC driver 。
IBM Toolbox for Java 可以用于支持 JVM 的平台,例如 Windows 、 Unix , IBM i , Linux 等,对应后台作业 QZDASOINIT 。
IBM Developer Kit for Java JDBC Driver 仅用于访问 IBM i 本地数据库,也就是说 Java 程序和数据库文件都位于同一个 IBM i 分区,使用 OS/400 CLI 接口访问本地数据库,对应后台作业 QSQSRVR 。
这两种驱动可以从 OS/400 的 /qibm/ProdData/HTTP/Public/jt400/lib 目录下载。
另外, IBM 也对 Toolbox 进行了开源,你可以从 https://www.ibm.com/docs/en/i/7.4?topic=java-jtopenlite 中的“ IBM Toolbox for Java/JTOpen web site ”链接处下载。
目前, JDBC 的版本有 3.0 、 4.0 和 4.1 版本, IBM i JDBC 的版本与 Java SE 版本的对应关系如下:
下面介绍 IBM i JDBC 编程将会用到的类,这些类和接口都位于 java.sql 中。
java.sql.DriverManager
– IBM Toolbox for Java
com.ibm.as400.access.AS400JDBCDriver
– IBM Developer Kit for Java
com.ibm.db2.jdbc.app.DB2Driver
java.sql.Connection
– SQL Statement
java.sql.Statement
– Calls a stored procedure
java.sql.CallableStatement
– Invokes a prepared statement
Java.sql.PreparedStatement
java.sql.ResultSet
java.sql 包中的类定义了 JDBC 的通用框架,在编写 JDBC 的 Java 程序时会用到这些类。数据库供应商会提供各自的 JDBC 驱动,他们对 java.sql 类进行子类化(不包括 DriverManager )以对其数据库进行访问。
下面简单介绍一下用 JDBC 访问 Db2/400 数据库,一般分为 5 个基本步骤:
先在 AS/400 上创建一张表,然后插入两条数据。
最上边的第三行 import java.sql.*; 用于导入核心 JDBC API ,它通常是第一条语句。
右侧的 1 、 2 、 3 、 4 、 5 表示上面提到的 5 个主要步骤。
第一步:用 DriverManager 注册 JDBC driver 。
这一步主要目的是注册 JDBC driver ,通过调用 "forName " 方法来加载 IBM Toolbox for Java 驱动。
Class.forName("com.ibm.as400.access.AS400JDBCDriver");
传递给 forname 的唯一参数是 JDBC 驱动程序类的名称。在这个例子中,使用的是 Toolbox JDBC 驱动。 forName
方法主要完成两项工作: 1. 创建一个 JDBC 驱动类的对象。 2. 将该对象注册给 DriverManager 类。
第二步:建立到 Db2/400 的连接。
通过调用 DriverManager 中的 "getConnection" 方法来建立一个与 Db2/400 的连接。
onnection = DriverManager.getConnection("jdbc:as400://" + system, userID, pwd);
在这个例子中 getConnection 方法传递了三个参数, DB URL 、用户 ID 和密码。
对于 userID 和 pwd ,很好理解,是 AS/400 上建立好的用户名和密码;
DB URL 是 Universal Resource Locator 的缩写,是一个字符串,指向欲连接的服务器和数据库;
这个例子中的 DB URL 是 "jdbc:as400://" + system ,其中“ jdbc ”代表协议( protocol ),“ as400 ”代表子协议( subprotocol )
, “ system ”是 AS/400 的主机名或 IP 地址。
第三步:执行所需的 SQL 语句。
主要目的是创建并执行 SQL 语句,在上一步建立连接的基础上用 createStatement 方法创建语句,然后执行 SQL 语句中,完成查询,将查询结果放于结果集 rs 中。
Statement select = conn.createStatement();
ResultSet rs = select.executeQuery("SELECT * FROM xqlib.emp");
第四步:处理 SQL 查询的结果
查询的结果返回到结果集后,可以查看结果集中的每一行,或处理其所包含的数据。 用 while 循环和 next 方法指向结果集中的下一条记录或行,然后对该行进行处理。
while (rs.next())
{
for (int i = 1; i <= rsmd.getColumnCount(); ++i)
{ String value =rs.getString(i);
System.out.print(value);
}
System.out.println();
}
第五步:关闭连接
rs.close();
conn.close();
此示例仅显示关闭结果集和关闭连接,但实际上,您还必须关闭结果集和语句以释放这些对象的资源。
https://www.ibm.com/docs/en/i/7.4?topic=java-jdbc
仅供参考
如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!
赞3
添加新评论0 条评论