利用IBM Java Toolbox for i实现针对数据库文件的记录级访问
从文件系统的角度,IBM i 提供了对 POSIX 类文件系统 IFS(或集成文件系统)的强大支持。从数据库的角度,IBM i 内置有关系数据库 DB2。作为 IBM i 平台应用普遍的数据库文件,则是以文件的视图访问数据库。
对于从事 IBM i 平台的应用开发而言,如何使用 IBM Java Toolbox for i 访问文件是非常重要的技能。本文的目标是系统性介绍如何利用 IBM Java Toolbox for i 实现针对数据库文件的记录级访问(RLA 或 Record Level Access),并指出 JDBC 与 RLA 两种技术的区别。
从文件系统的角度,IBM i 提供了对 POSIX 类文件系统 IFS(或集成文件系统)的强大支持。从数据库的角度,IBM i 内置有关系数据库 DB2。作为 IBM i 平台应用普遍的数据库文件,则是以文件的视图访问数据库。对于从事 IBM i 平台的数据库应用开发而言,如何使用 IBM Java Toolbox for i 访问数据库文件是非常重要的技能。本文的目标是系统性介绍如何利用 IBM Java Toolbox for i 实现针对数据库文件的记录级访问(RLA 或 Record Level Access),并指出 JDBC 与 RLA 两种技术的区别。
从文章结构上,本文首先介绍 IBM i 数据库文件的基础知识。接下来,以客户信息数据库为例,指导读者如何使用 IBM Java Toolbox for i 创建数据库文件,然后添加、检索、更新与删除客户记录。另外,关于 IBM Java Toolbox for i 对数据库锁,游标,事务的相关支持,本文也所涉及。
IBM i 数据库文件
我们从文件系统与数据库这两个维度分别介绍 IBM i 数据库文件的基本概念。
IFS 文件 vs 数据库文件
首先,从文件的角度,IBM i 提供两种文件资源形式:IFS 文件与数据库文件。所谓 IFS(或 Integrated File System)指的是一种 POSIX 类文件系统,文件存在形式是一个字节序列,没有任何数据格式。IFS 的访问方式分为顺序与随机两种。而数据库文件具有指定的数据格式。我们称数据库文件的访问方式为记录级访问。有关 IFS 文件与数据库文件的区别,见图 1。
图 1. IFS 文件 vs 数据库文件
DB2 vs 数据库文件
接下来,我们从数据库的角度对比数据库文件与数据库表。表 1 描述了 IBM i 系统对象和 DB2 对象的对应关系。结合清单 1,我们可以简单地认为,IBM i 数据库文件有若干数据记录组成,这些数据记录以文件成员(Member)的形式呈现,每一个成员提供访问数据记录的路径。而每一条记录由各个字段组成,其对应关系为:行(Row) – 记录(Record), 列(Column) – 字段(Field)。从这个角度而言,数据库表的记录格式与物理文件的记录格式完全相同。
表 1 IBM i 系统对象和 DB2 对象的对应关系
DB2 对象 | IBM i 对象 |
---|---|
模式(Schema) | 库(Library) |
表(Table) | 数据库文件(Database Files) |
JDBC 访问 vs 基于 RLA 访问
对于数据库的操作,无论从关系型数据库表的角度,还是 IBM i 数据库文件的角度,IBM Java Toolbox for i 均提供了 OO 编程级别的支持。
JDBC 是一种以 SQL 语句为核心的标准编程接口。IBM Java Toolbox for i 提供了标准的 JDBC 数据库编程实现。RLA(Record Level Access)则是一种以 SQL API 为核心的数据库文件访问技术。换句话说,不同于 IBM Java Toolbox for i 与数据库主机基于 Socket 的请求 / 相应式交互模式,RLA 直接调用 IBM i 底层的 Call Level Interface(调用级接口),属于直接调用 IBM i 本地 API 的方式,因此数据库的访问性能上要优于前者。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











Go 言語は、効率的かつ簡潔で習得が容易なプログラミング言語であり、同時プログラミングやネットワーク プログラミングに優れているため、開発者に好まれています。実際の開発ではデータベースの操作が欠かせませんが、今回はGo言語を使ってデータベースの追加・削除・変更・クエリ操作を実装する方法を紹介します。 Go 言語では、データベースを操作するために通常、よく使用される SQL パッケージや gorm などのサードパーティ ライブラリを使用します。ここでは SQL パッケージを例として、データベースの追加、削除、変更、クエリ操作を実装する方法を紹介します。 MySQL データベースを使用していると仮定します。

Apple の最新リリースの iOS18、iPadOS18、および macOS Sequoia システムでは、さまざまな理由で紛失または破損した写真やビデオをユーザーが簡単に回復できるように設計された重要な機能が写真アプリケーションに追加されました。この新機能では、写真アプリのツール セクションに「Recovered」というアルバムが導入され、ユーザーがデバイス上に写真ライブラリに含まれていない写真やビデオがある場合に自動的に表示されます。 「Recovered」アルバムの登場により、データベースの破損、カメラ アプリケーションが写真ライブラリに正しく保存されない、または写真ライブラリを管理するサードパーティ アプリケーションによって失われた写真やビデオに対する解決策が提供されます。ユーザーはいくつかの簡単な手順を実行するだけで済みます

Hibernate ポリモーフィック マッピングは、継承されたクラスをデータベースにマップでき、次のマッピング タイプを提供します。 join-subclass: 親クラスのすべての列を含む、サブクラス用の別個のテーブルを作成します。 table-per-class: サブクラス固有の列のみを含む、サブクラス用の別個のテーブルを作成します。 Union-subclass: join-subclass と似ていますが、親クラス テーブルがすべてのサブクラス列を結合します。

MySQLi を使用して PHP でデータベース接続を確立する方法: MySQLi 拡張機能を含める (require_once) 接続関数を作成する (functionconnect_to_db) 接続関数を呼び出す ($conn=connect_to_db()) クエリを実行する ($result=$conn->query()) 閉じる接続 ( $conn->close())

HTML はデータベースを直接読み取ることはできませんが、JavaScript と AJAX を通じて実現できます。この手順には、データベース接続の確立、クエリの送信、応答の処理、ページの更新が含まれます。この記事では、JavaScript、AJAX、および PHP を使用して MySQL データベースからデータを読み取る実践的な例を示し、クエリ結果を HTML ページに動的に表示する方法を示します。この例では、XMLHttpRequest を使用してデータベース接続を確立し、クエリを送信して応答を処理することで、ページ要素にデータを埋め込み、データベースを読み取る HTML の機能を実現します。

PHP でデータベース接続エラーを処理するには、次の手順を使用できます。 mysqli_connect_errno() を使用してエラー コードを取得します。 mysqli_connect_error() を使用してエラー メッセージを取得します。これらのエラー メッセージをキャプチャしてログに記録することで、データベース接続の問題を簡単に特定して解決でき、アプリケーションをスムーズに実行できるようになります。

PHP は Web サイト開発で広く使用されているバックエンド プログラミング言語であり、強力なデータベース操作機能を備えており、MySQL などのデータベースとの対話によく使用されます。ただし、中国語の文字エンコーディングは複雑であるため、データベース内で中国語の文字化けを処理するときに問題が発生することがよくあります。この記事では、文字化けの一般的な原因、解決策、具体的なコード例を含め、データベース内の中国語の文字化けを処理するための PHP のスキルと実践方法を紹介します。文字化けの一般的な原因は、データベースの文字セット設定が正しくないことです。データベースの作成時に、utf8 や u などの正しい文字セットを選択する必要があります。

Golang でデータベース コールバック関数を使用すると、次のことを実現できます。 指定されたデータベース操作が完了した後にカスタム コードを実行します。追加のコードを記述せずに、個別の関数を通じてカスタム動作を追加します。コールバック関数は、挿入、更新、削除、クエリ操作に使用できます。コールバック関数を使用するには、sql.Exec、sql.QueryRow、または sql.Query 関数を使用する必要があります。
