S2Dao

S2Daoの特長

 ・XMLファイルを使わない

 Hibernate などのO/Rマッピングツールでは、オブジェクトのプロパティとRDBテーブルの各カラムのデータとを対応付ける(マッピングする)ために、XMLファイルによる設定を記述しなければなりません。しかしS2Daoでは、こうしたマッピングの設定をstatic final型のクラス変数を用いて行います。このような設定のための変数をS2Daoではアノテーションと呼んでいます。アノテーションといっても、メタデータを記述するという点では同じですが、J2SE5のそれとはまったく内容が異なりますので間違えないようにしてください。具体的にどのようなものなのかは後述します。

 ・JDBC APIを使わない

 S2Dao はO/Rマッピングツールです。このジャンルのツールでは、オブジェクトのやり取りだけでDBアクセスができるというのが大きな特徴です。それは S2Daoも同じです。ですからデータベースを接続・切断するためのソースコードを記述する必要がありません。また、S2本体が持つトランザクション機能と組み合わせることもできます。この機能もAOP機能を利用しているわけですから、diconファイルに設定を記述するだけでO/Rマッピング機能をアプリケーションにプラスすることができるわけです。

 ・SQLとJavaのソースコードを分離する

 S2Dao の機能として、決められた形式に従った名称を持つファイルにSQLソースコードを記述しておくと、その内容(SQL)をデータベースに対して実行してくれるという機能があります。これにより、SQLソースコードを記述するDB技術者とJavaソースコードを記述するJava技術者の作業を分離することができます。

 ・SQL文の自動生成

 ある命名規則に従ってJavaメソッドを作成すると、それを基にしてS2DaoがSQL文を自動的に生成してくれます。実行したいSQL文がシンプルなもので、上記のように別ファイルでSQL文を書くまでもないというような場合は、その作業すら省略することができます。

 ・インターフェイスだけで処理を実行

 上記のようなSQLのJavaソースコードからの分離やSQL文の自動生成機能のおかげで、diconファイルにインターフェイスの設定を記述するだけで必要な処理が実行できるようになります。もちろんより複雑な処理を行う場合には、diconファイルにそれを実装したクラスについての設定を記述することもできます。

 ・EntityManagerによる検索処理の実行

 EntityManager というのは、EJB 3.0のそれとは異なり、S2Daoで利用できるオブジェクトのことをいい、検索処理の記述を簡単にするメソッドを多数用意しています。検索処理が多いアプリケーションを開発する場合は、こうした機能を活用すれば開発効率の向上が期待できるでしょう。

 ・バージョン番号やTimestampによる排他制御

 バージョン番号を持つint型のプロパティやjava.sql.Timestamp型のプロパティをエンティティクラス(後述)に作成しておくと、データの更新時に、更新しようとするデータ(エンティティ)のバージョン番号やTimestampの値と、データベースに保存されているデータのバージョン番号やTimestampの値とが同じものでないと更新することができないようにすることができます。

 ・S2DaoTestCase

 S2を用いたアプリケーションのテストを行うS2TestCase(第4回「SeasarV2によるテスト機能」参照)を継承したもので、assertBeanEquals()メソッドなどを実装しています。このクラスを用いることにより、Excelファイルを使ったDBアクセス処理のテストを行うことができるようになります。詳細はSeasarプロジェクトのドキュメント(http://www.seasar.org/testtech.html#S2DaoTestCase)を参照してください。
最終更新:2007年01月26日 18:11
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。