連載 [第4回] :
徹底比較!! O/RマッピングツールSQLを記述しない「Torque」
2006年8月9日(水)
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
データベースアクセス時のパスワードを設定する
テスト用実行クラスの作成
最後に、テスト用実行クラスを作成します。作成したプログラムは以下に示します。
テスト用実行クラス(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」について見ていきたいと思います。
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 |
データベースアクセス時のパスワードを設定する |
最後に、テスト用実行クラスを作成します。作成したプログラムは以下に示します。
テスト用実行クラス(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」について見ていきたいと思います。
連載バックナンバー
Think ITメルマガ会員登録受付中
Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。