目次へ

6. DataSourceからConnectionを取得する

6.1. server.xmlへの設定

J2EEにおいてデータベースに接続する場合は、java.sql.DriverManagerではなく「javax.sql.DataSource」を用いてConnectionを取得する方法が推奨されています。この節ではTomcatでDataSourceを用いる方法について説明します。

TomcatでDataSourceを用いるためには、まずTomcatの設定ファイルserver.xmlでの設定が必要です。

...
  <Context path="/sample" docBase="/home/tomcat/sample" debug="0"
           reloadable="true" crossContext="true">
    <Logger ... />
    <Resource name="jdbc/datasource" auth="Container"
              type="javax.sql.DataSource" />
    <ResourceParams name="jdbc/datasource">
      <parameter>
        <name>username</name>
        <value>postgres</value>
      </parameter>
      <parameter>
        <name>password</name>
        <value></value>
      </parameter>
      <parameter>
        <name>driverClassName</name>
        <value>org.postgresql.Driver</value>
      </parameter>
      <parameter>
        <name>url</name>
        <value>jdbc:postgresql:Training</value>
      </parameter>
    </ResourceParams>
  </Context>
...

Webアプリケーションを定義した<Context>タグの内側に、<Resource>タグと<ResourceParams>タグを定義します。それぞれ他のリソースの定義にも使用できるものですが、ここではDataSourceの定義に使用します。なお定義したWebアプリケーションでのみ、DataSourceが使用可能となります。

まず<Resource>タグはリソースを定義するものです。「name」「auth」「type」属性を持ちますが、DataSourceを定義する場合には、name属性の他は例と同じにして下さい。name属性にはDataSourceにつける名前を指定します。

<ResourceParams>タグはリソースのパラメータを指定するものです。パラメータの指定には、<parameter>タグを使用します。<name>タグの値がパラメータ名で、<value>タグの値がパラメータの値に相当します。DataSourceを定義する場合に指定しなければならないパラメータは「username」「password」「driverClassName」「url」の4つです。それぞれ、「データベースに接続する際のユーザ名」「パスワード」「使用するJDBCドライバクラス名」「接続するデータベースのURL」を指定します。DriverManagerのgetConnectionメソッドで指定した値と同じものを指定します。なお指定するパラメータは使用するDataSourceの実装クラスによって異なってきます。Tomcatのデフォルトではこのようになっているだけですので、注意してください。

以上でserver.xmlへの設定は終了です。ただしデータベースへの接続はTomcatによって実行されますので、PostgreSQLのJDBCドライバを、Tomcatの「common\lib」ディレクトリに置いて下さい。

6.2. web.xmlへの設定

Webアプリケーションの設定ファイルweb.xmlに設定を行います。

  ...
  </taglib>
  <resource-ref>
    <res-ref-name>jdbc/datasource</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>CONTAINER</res-auth>
  </resource-ref>
</web-app>

リソースの定義は<resource-ref>タグで行います。<resource-ref>タグは<taglib>の次に定義してください。<resource-ref>には3つの子要素<res-ref-name><res-type><res-auth>が必要ですが、server.xmlの<Resource>タグで指定した「name」「type」「auth」属性の値と同じにして下さい。

↑このページの先頭へ

こちらもチェック!

PR
  • XMLDB.jp
  • シナジーマーケティング研究開発グループブログ
Loading