Java Database Connectivity (JDBC)
Java Database Connectivity (JDBC) は、リレーショナル・データベースとの接続および対話を行うための Java API です。
以下の表に、 JDBC フィーチャーをリストします。
| フィーチャー | サポート | サポートされる Java バージョン | サポートされる Enterprise Java バージョン |
|---|---|---|---|
jdbc-4.0 |
JDBC バージョン 4.0 |
|
|
jdbc-4.1 |
JDBC バージョン 4.1 |
|
|
jdbc-4.2 |
JDBC バージョン 4.2 |
|
|
| jdbc-4.3 | JDBC バージョン 4.3 |
|
|
cicsts:jdbc-1.0 |
CICS® JDBC。 Db2® タイプ2接続 |
|
|
JDBC サポートの構成について詳しくは、 JDBCを参照してください。
データベース対話を使用したアプリケーションの開発
Db2 データベースと対話するには、2 つの方法があります。
- データ・ソース
javax.sql.DataSourceは、 dataSource または cicsts_dataSource 構成エレメントで定義された jndiName を使用して JNDI で検索できます。 このjavax.sql.DataSourceオブジェクトを使用して、データベースと対話するためのjava.sql.Connectionオブジェクトを取得できます。javax.sql.DataSourceの実装によっては、閉じる前に接続をコミットまたはロールバックすることが重要になる場合があります。 詳しくは、 Liberty JDBC フィーチャーと CICS JDBC フィーチャーの違いを参照してください。- ドライバー・マネージャー
java.sql.DriverManagerクラスを使用して、java.sql.Connectionがデータベースと対話するようにすることができます。 CICSのタイプ2接続の場合、 URL はjdbc:default:connectionです。 詳細については IBM Data Server Driver for JDBC and SQLJ DriverManagerを使用したデータソースへの接続を参照してください
Liberty JDBC フィーチャーと CICS JDBC フィーチャーの相違点
Liberty には、さまざまなリレーショナル・データベースに接続するための JDBC フィーチャー jdbc-4.0、 jdbc-4.1、 jdbc-4.2、および jdbc-4.3 が用意されています。 CICS Liberty では、Liberty JDBC サポートを使用して、タイプ 2 接続の CICS DB2CONN を介して、またはタイプ 4 接続のリモートで、 Db2 データベースに接続できます。 Liberty JDBC は、 java.sql および javax.sql API をサポートし、 dataSource 構成を介して javax.xml.DataSource の実装を提供します。
cicsts:jdbc-1.0 が用意されています。 CICS は、 java.sql API をサポートし、 cicsts_dataSource 構成を介して javax.sql.DataSource の実装を提供します。batch-1.0 パーシスタンスには dataSource を使用する必要があります。CICS および Liberty JDBC は、 JDBC API を使用するトランザクションをサポートします。 JDBC タイプ 2 接続の場合、 Db2 の更新は、 CICS 作業単位の一部として CICS DB2CONN リソースを介して管理されます。 Liberty と CICS JDBC では、接続の管理方法が異なります。
自由JDBC処理が完了すると自動的に接続が閉じられ、トランザクションはロールバックまたはコミットされます。commitOrRollbackOnCleanupの属性dataSource要素。 デフォルト設定はrollbackなので、暗黙のjava.sql.Connection.commit()を呼び出す必要があり、CICSコミットされる作業単位。
CICS JDBC は、 CICS 作業単位によって管理されます。 データベースの更新は、 CICS タスクがコミットまたはロールバックするときにコミットまたはロールバックされます。
| Type | 接続タイプ | 自動コミット | デフォルトのクリーン動作 |
|---|---|---|---|
| CICS JDBC | タイプ 2 | false |
CICS UOW をコミットします。 |
| 自由 JDBC | タイプ 2 | false |
CICS UOW をロールバックします。 |
| タイプ 4 | true または false |
ローカル・トランザクションをコミットします。 CICS UOW は影響を受けません。 |
グローバル・トランザクションを使用して、トランザクション・スコープのデータ・ソースを管理できます。 グローバル・トランザクションでは、Liberty と CICS javax.sql.DataSource のトランザクション動作は一貫しています。 Liberty でのグローバル・トランザクションについて詳しくは、 Java Transaction API (JTA)を参照してください。
例
jndiNamejdbc/defaultCICSDataSourceを指定した dataSource または cicsts_dataSource 構成を使用して、 javax.sql.DataSource インターフェースでデータベースに接続する。import java.sql.Connection;
import java.sql.SQLException;
import javax.annotation.Resource;
import javax.sql.DataSource;
public class DataSourceExample
{
// Inject the DataSource resource using JNDI
@Resource(name = "jdbc/defaultCICSDataSource")
private DataSource dataSource;
public void accessDb() throws SQLException
{
try(Connection conn = dataSource.getConnection())
{
// Interact with SQL using the Connection object
}
}
}java.sql.DriverManager クラスでのデータベースへの接続。import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class DriverManagerExample
{
public void accessDatabase() throws SQLException
{
try(Connection conn = DriverManager.getConnection("jdbc:default:connection"))
{
// Interact with SQL using the Connection object
}
}
}