検索

第6章 JDBC データソースの使用

download PDF

以下のトピックでは、Fuse OSGi ランタイムでの JDBC データソースの使用について説明します。

6.1. 接続インターフェイスについて

データ操作の実行に使用する最も重要な オブジェクト は、java.sql.Connection インターフェイスの実装です。Fuse 設定の観点からは、Connection オブジェクトの 取得 方法を理解することが重要です。

関連するオブジェクトを含むライブラリーは以下のとおりです。

  • PostgreSQL: mvn:org.postgresql/postgresql/42.2.5
  • MySQL: mvn:mysql/mysql-connector-java/5.1.34

既存の実装 (ドライバー JARに含まれる) は以下を提供します。

  • PostgreSQL: org.postgresql.jdbc.PgConnection
  • MySQL: com.mysql.jdbc.JDBC4Connection (com.mysql.jdbc.Driver のさまざまな connect*() メソッドも参照)

これらの実装には、DML、DDL、および簡単なトランザクション管理を実行するためのデータベース固有のロジックが含まれます。

理論的には、これらの接続オブジェクトを手動で作成することは可能ですが、詳細を非表示にしてよりクリーンな API を提供する 2 つの JDBC メソッドがあります。

  • java.sql.Driver.connect() - このメソッドは、ずっと前にスタンドアロンアプリケーションで使用されていました。
  • javax.sql.DataSource.getConnection() - ファクトリーパターンを使用する場合に推奨される方法です。同様の方法を使用して、JMS 接続ファクトリーから JMS 接続を取得します。

ドライバーマネージャー のアプローチについては、ここでは説明しません。このメソッドは、特定の接続オブジェクトのプレーンコンストラクターの上の小さな レイヤー であると記述するだけで十分です。

データベース固有の通信プロトコルを効果的に実装する java.sql.Connection に加えて、次の 2 つの特殊な接続インターフェイスがあります。

  • javax.sql.PooledConnection は物理接続を表します。コードは、このプールされた接続と直接対話しません。代わりに、getConnection() メソッドから取得した接続が使用されます。この間接参照により、アプリケーションサーバーのレベルで接続プールを管理できます。通常、getConnection() を使用して取得した接続はプロキシーです。このようなプロキシー接続が閉じられると、物理接続は切断されず、管理接続プールで再度利用できるようになります。
  • javax.sql.XAConnection では、XA 対応の接続に関連する javax.transaction.xa.XAResource オブジェクトを取得して、javax.transaction.TransactionManager と使用できます。javax.sql.XAConnectionjavax.sql.PooledConnection を継承するので、 `getConnection() メソッドも提供し、通常の DML/DQL メソッドで JDBC 接続オブジェクトにアクセスできます。
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.