OliverXQ
作者OliverXQ2021-09-22 11:17
浪潮商用机器有限公司, 浪潮商用机器企业云创新中心

AS/400 JDBC基本知识简介

字数 3794阅读 3803评论 0赞 3

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 。

  1. IBM Toolbox for Java
  • "Toolbox" driver

  • com.ibm.as400.access.AS400JDBCDriver

  • Type 4 driver - 可以被任何 JVM 使用

  • 位于 jt400.jar

IBM Toolbox for Java 可以用于支持 JVM 的平台,例如 Windows 、 Unix , IBM i , Linux 等,对应后台作业 QZDASOINIT 。

  1. IBM Developer Kit for Java JDBC Driver
  • "Native" JDBC driver

  • com.ibm.db2.jdbc.app.DB2Driver

  • Type 2 driver - 只能被 OS/400 JVM 上的 Java 程序所使用

  • 位于 jt400Native.jar

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 版本的对应关系如下:

  • JDBC 3.0 API (the java.sql and javax.sql packages) is included in J2SE, Version 1.4 and 5.0

  • JDBC 4.0 API is included in Java SE Version 6

  • JDBC 4.1 API is included in Java SE Version 7

下面介绍 IBM i JDBC 编程将会用到的类,这些类和接口都位于 java.sql 中。

  1. JDBC drivers manager 管理 JDBC 驱动,

java.sql.DriverManager

2. JDBC driver class

– IBM Toolbox for Java

com.ibm.as400.access.AS400JDBCDriver

– IBM Developer Kit for Java

com.ibm.db2.jdbc.app.DB2Driver

3. Connection interface

java.sql.Connection

4. Statement interface

– SQL Statement

java.sql.Statement

– Calls a stored procedure

java.sql.CallableStatement

– Invokes a prepared statement

Java.sql.PreparedStatement

5. Result set interface

java.sql.ResultSet

java.sql 包中的类定义了 JDBC 的通用框架,在编写 JDBC 的 Java 程序时会用到这些类。数据库供应商会提供各自的 JDBC 驱动,他们对 java.sql 类进行子类化(不包括 DriverManager )以对其数据库进行访问。

下面简单介绍一下用 JDBC 访问 Db2/400 数据库,一般分为 5 个基本步骤:

  1. 用 DriverManager 注册 JDBC driver 。

  2. 建立到 Db2/400 的连接。

  3. 执行所需的 SQL 语句。

  4. 处理 SQL 查询的结果。

  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();  

此示例仅显示关闭结果集和关闭连接,但实际上,您还必须关闭结果集和语句以释放这些对象的资源。

最后执行这个 Java 程序,检查一下结果。

参考文档:

https://www.ibm.com/docs/en/i/7.4?topic=java-jdbc

仅供参考

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

3

添加新评论0 条评论

Ctrl+Enter 发表