徹底比較!! O/Rマッピングツール 4

SQLを記述しない「Torque」

山之内 弘行

2006年8月9日 21:05

目次

  1. はじめに
  2. Torqueとは?
  3. Torqueのダウンロード
  4. Eclipseプロジェクトの作成
  5. テーブルの初期値の準備
  6. Generatorによるファイルの生成
  7. Torque Runtimeによるアプリケーション実行
       Runtimeは、Generator(開発環境)で作成したクラスを実行する環境を提供します。ですので、まずはGenerator(開発環境)で作成したクラスをRuntime(実行環境)にコピーします。


    図5:torque-Runtimeプロジェクト

    Torque実行環境用プロパティファイルの修正
       Torque.propertiesはTorque実行環境用のプロパティファイルで、主にJDBC関連の設定を行います。Torque.propertiesはダウンロードしてきたファイルに用意されているので、今回は、その一部を自分の環境用に修正して使用します。 Torque実行環境用プロパティファイル(Torque.properties)の修正箇所抜粋
    # build.propertiesのプロジェクト名に合わせる
    torque.database.default=postgres
    # RDBMSの種類
    torque.database.postgres.adapter=postgresql
    # JDBC関連の設定(ドライバ、URL、ユーザ名、パスワード)
    torque.dsfactory.postgres.connection.driver = org.postgresql.Driver
    torque.dsfactory.postgres.connection.url = jdbc:postgresql://localhost:5432/postgres
    torque.dsfactory.postgres.connection.user = postgres
    torque.dsfactory.postgres.connection.password = password

       torque.database.defaultには、修正したGenerator用設定ファイル(build.properties)のtorque projectと同様の内容を記述します。torque.database.default以下のtorque.database.<プロジェクト名>、torque.dsfactory.プロジェクト名プロジェクト名の部分には、torque.database.defaultで設定したプロジェクト名を記述します。

       各プロパティの説明は以下のとおりです。

    役割 プロパティ名 説明 データベースの設定 torque.database.default プロジェクト名(データベース名)を設定する RDBMSの設定 torque.database.プロジェクト名.
    adapter
    対象のRDBMSの種類を設定する JDBC関連の設定 torque.dsfactory.プロジェクト名.
    connection.driver
    DB接続時に使用するJDBCドライバを設定する torque.dsfactory.プロジェクト名.
    connection.url
    DBアクセス時に使用するURLを設定する torque.dsfactory.プロジェクト名.
    connection.user
    データベースにアクセスするユーザ名を設定する torque.dsfactory.プロジェクト名.
    Connection.password
    データベースアクセス時のパスワードを設定する

    表4:Torque実行環境用プロパティファイルの各プロパティの説明


    テスト用実行クラスの作成
       最後に、テスト用実行クラスを作成します。作成したプログラムは以下に示します。

    テスト用実行クラス(TorqueExecutor.java)一部抜粋

    (画像をクリックすると別ウィンドウに拡大図を表示します)

       Torqueを利用してデータベースにアクセスする場合、基本的にCriteriaクラスを使用します。Criteriaクラスに様々な条件を設定し、Torqueに用意されている各メソッドにCriteriaを渡すと、Torqueが自動的にSQL文を組み立ててくれるためSQL文を書くことなく様々な処理(検索/更新/挿入/削除)を実行できます。

       また、TorqueのDTOにあたるOMクラスにはsave()メソッドが用意されており、このメソッドを使用することで更新、挿入処理を簡単に行うことができます。更新か挿入かの判断はsave()メソッドが自動的に判断してくれます。


    テスト用プログラムの実行
       テスト用プログラムを実行します。実行結果は以下のとおりです。

    実行結果
    -----検索(JOIN)結果-----
    社員ID = 333
    社員名 = Torque
    部署名 = 管理部


    -----挿入結果-----
    部署ID = 3
    部署名 = 管理部
    内線番号 = 3456
    部署ID = 4
    部署名 = 営業部(Torque)
    内線番号 = 9876


    -----更新結果-----
    部署ID = 3
    部署名 = 管理部
    内線番号 = 3456
    部署ID = 4
    部署名 = 営業部(Torque)
    内線番号 = 6789


    -----削除結果-----
    部署ID = 3
    部署名 = 管理部
    内線番号 = 3456


    まとめ
       今回はTorqueについて見てきました。TorqueではSQL文を書かずにデータベースにアクセスすることができます。この点が「iBATIS」と決定的に異なる点です。SQL文を書かないためデータベースの方言の違いも意識する必要はありません。また、joinのためのメソッドも用意されているため「iBATIS」では強く意識しなければならなかった関連についても、さほど意識する必要がありません。

       しかし、SQL文を記述できない(実際には記述可能だが、SQLを多用するとToqueを使う意味が薄れてしまう)ため、データの検索や更新時のパフォーマンスチューニングなどの柔軟な対応はできません。

       Torqueは、データ構造がシンプルでパフォーマンスチューニングなどの必要性がないシステムでは有効なフレームワークであるといえるのではないでしょうか。

       次回は、「Hibernate」について見ていきたいと思います。

  8. Torque実行環境用プロパティファイルの修正
  9. まとめ

はじめに


   皆さん、こんにちは。本連載を担当しているビーブレイクシステムズの山之内です。

   第2〜3回では、SQL文をマッピング・ファイルに定義する形式のO/Rマッピングツール「iBATIS」について解説してきました。今回は、SQL文を使用しない形式のO/Rマッピングツール「Torque」について、実際にサンプルを作成しながら解説していきます。


Torqueとは?


   TorqueはSQL文を使用しないタイプのO/Rマッピングツールで、RDBにオブジェクトとしてアクセスする機能を提供します。特徴的なのは、Active Recordパターン(エンティティがO/Rマッピングツールの基底クラスを継承する)に基づいている点です。

   元々、TorqueはJakartaプロジェクトのTurbineのフレームワークの一部として開発されていましたが、現在はTurbineと切り離れてApache DBプロジェクトに移動し、単独で利用できるようになりました。2006年7月現在でリリースされているバージョンは3.2です。

   また、Torqueはバージョン3.1からGeneratorとRuntimeのモジュールが分割されています。Generatorは開発環境にあたるもので、これを使ってソースファイルなどの生成を行います。もう一方のRuntimeは実行環境にあたるもので、Generatorで作成したクラスを実行する時に使用します。

Torqueの流れ
図1:Torqueの流れ

   では以降より、実際にTorqueに触れてみます。


Torqueのダウンロード


   Torqueを利用するために、まずはTorqueのWebサイトからTorque 3.2 GeneratorとTorque 3.2 Runtimeをダウンロードしてきてください。

Apache DB Project Torque
http://db.apache.org/torque/

Torqueダウンロードサイト
図2:Torqueダウンロードサイト
(画像をクリックすると別ウィンドウに拡大図を表示します)

   ダウンロードしてきたファイルは適当な場所へ展開してください。

この記事をシェアしてください

人気記事トップ10

人気記事ランキングをもっと見る