#02:DataSource
このチャプターでは、DataSourceについて学習します。
JDBCは、Java Database Connectivityの頭文字を取ったもので、Javaを使用して様々なデータベースにアクセスするためのAPIです。
JDBCを使用すると、さまざまな種類の表形式のデータ、特にリレーショナルデータベースに格納されたデータにアクセスすることができます。
JDBCは、Javaのプログラムと、データベースとの通信を管理するための標準的なインターフェースを提供します。
これには、データベースへの接続、クエリの実行、トランザクションの管理、クエリの結果の取得などの機能があります。
DataSourceは、データベースへの接続を管理するためのオブジェクトです。
Jakarta EEプラットフォームやJSTLにおいて、データベース接続の抽象化と管理を容易にするために利用します。
JDBCでは、DriverManagerクラスを使って、都度データベースとの接続を確立していました。
DataSourceを利用することで、より効率的で高度な接続管理が可能になります。
たとえば、DataSourceを使用すると、このような機能および効果が期待できます。
・接続プーリング
・移植生の向上
アプリケーション・サーバには、ユニークな名前とオブジェクトを紐づけるディレクトリ・サービス機能があります。
この機能は、JNDIと呼ばれます。
JNDIは、Java Naming and Directory Interfaceの頭文字をとったものです。
これは、アプリケーションが、ユニークな名前であるJNDI名を使って様々な種類のリソースを検索し、アクセスするための標準APIです。
アプリケーションのビジネスロジックを、そのソースコードに手を加えることなく、デプロイ時などにカスタマイズできるようにするために使用します。
アプリケーションサーバは、起動時に設定ファイルに基づいてデータソースなどのリソースを生成し、JNDIサーバに登録します。
アプリケーションは、JNDI名を使ってリソースを検索し、利用します。
JNDIの管理対象のリソースは、Tomcatの場合は一般的に、Webアプリケーション内の、META-INFディレクトリ配下のcontext.xmlファイルに記述し、定義します。
JNDI名を使ってリソースを検索することは、JNDIルックアップと呼ばれます。
【リソースインジェクション】
@Resourceを使用することで、DataSourceへの参照をフィールドに自動的に注入することができます。
この動作はインジェクションとも呼ばれます。public class MyServlet extends HttpServlet {
@Resource(name = "jdbc/datasource")
private DataSource ds;
:
}
新・Java入門編36: JDBCについて学習しよう
https://paiza.jp/works/java/new-primer/java-new-primer-36