WTP上のTomcat6でH2をデータソースにする

一回できたのに忘れてしまったのでメモ。なお、EclipseにはPleiadesが組み込まれてるものとする。

多分これでいいと思うんだけど、間違ってたら誰か突っ込んでくれ。

WTPで動かすTomcat6に外部のjarを登録する

「Servers」プロジェクトを選択して右クリックメニュー
⇒ 「実行」 ⇒ 「実行の構成」
⇒ 「クラスパス」タブを選択
⇒ 「ユーザー・エントリー」にH2のjarを追加
⇒ 「適用」を押す。

H2をJDBCドライバとして登録する

「Servers」プロジェクトのサーバ定義フォルダ(例えば「ローカル・ホスト の Tomcat v6.0 サーバー-config」)にある「context.xml」を編集する。

の内側に以下を追加。

<Resource name="TestDB"
          auth="Container"
          type="javax.sql.DataSource"
          maxActive ="-1" -- テスト用なので適当 --
          maxIdle="-1" -- 〃 --
          maxWait="-1" -- 〃 --
          username="test_web"
          password="test_web"
          driverClassName="org.h2.Driver"
          url="jdbc:h2:~/workspace/TestDB" />

H2がサーバとして起動している場合は「jdbc:h2:tcp://localhost/~/workspace/TestDB」のように指定する。

Connectionオブジェクトを取ってくる

public class ClassOfSingleton {
    @Resource(name = "TestDB")
    private DataSource ds;
    ...
    void method() {
        Connection conn = null;
        try {
            conn = ds.getConnection();
            ...
        } catch (SQLException e) {
            ...
        } finally {
            try {
                conn.close();
            } catch (SQLException e) {
                ...
            }
        }
        ...
    }
}