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 |
Db2® タイプ 2 接続用の CICS Support for JDBC |
|
|
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 をコミットします。 |
Liberty 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
}
}
}