|
||||||||||||||||||||||||||||
| 前のページ 1 2 3 4 | ||||||||||||||||||||||||||||
| DAOの作成 | ||||||||||||||||||||||||||||
|
次にDAOクラスを作成します。次のようになります。 リスト4:VideoDao.java |
||||||||||||||||||||||||||||
package hoge;
|
||||||||||||||||||||||||||||
|
VideoDaoは、"インターフェイス"として作成しています。BEANは「定数アノテーション」で、DTOのクラスを指定します。そして、登録、更新、削除、検索用のメソッドを定義しています。なお、このインターフェイスに対する実装は、ソース上は「存在しません」。実装は、「定型的な処理」(自動生成可能)なので、実行時にS2が自動生成します。 |
||||||||||||||||||||||||||||
| diconファイルへ登録 | ||||||||||||||||||||||||||||
|
作成したDAOクラス(VideoDao)をdiconファイルに登録します。diconファイルとはSeasarの設定ファイルです。ここに登録したコンポーネント(この場合はVideoDao)をS2コンテナから取得すると、必要な処理が追加されます。 リスト5:dao.dicon |
||||||||||||||||||||||||||||
<?xml version="1.0" encoding="Shift_JIS"?>
|
||||||||||||||||||||||||||||
| クライアントの作成 | ||||||||||||||||||||||||||||
|
最後に、DAOを利用するクライアントを作成します。次のようになります。 リスト6:Main.java |
||||||||||||||||||||||||||||
package hoge;
|
||||||||||||||||||||||||||||
| 実行 | ||||||||||||||||||||||||||||
|
Mainクラスを実行すると、コンソールに次のように表示されるでしょう。あらかじめデータベースを起動しておく必要があります。 実行結果 |
||||||||||||||||||||||||||||
DEBUG 2005-02-07 12:11:02,914 [main] 物理的なコネクションを取得しました
|
||||||||||||||||||||||||||||
| メリットは? | ||||||||||||||||||||||||||||
|
先ほど紹介したS2Daoを利用しないDAOの実装の例と比較すると、コード量がかなり少ないことがわかると思います。コード量が少ないということは、開発コストがかからない上に、綴り間違い、close忘れといった凡ミスも減ることを意味します。 S2Daoは、例えるなら「気の利いた秘書」のようなものです。社長は会社の戦略など本来やるべき仕事に時間をさくべきで、日々の定型作業に忙殺されるべきではありません。プログラマはキーパンチャーではなく、必要なビジネスロジックの実装に時間をさくべきです。決まりきった定型作業はなるべく部下に振っていくべきでしょう。S2Daoという部下は、人件費もかからず文句も言わず、正確な仕事をしてくれます。 O/Rマッパーにはいくつかの種類がありますが、Hibernateなど多くのO/Rマッパーはマッピング定義のXMLが必要で、いくらか自動生成できるといっても、ファイルが膨大になり、また覚えることも多くあります。S2Daoは、O/Rマッパーの中でも「簡単」に「よくある」処理を自動化してくれます。 ここでは、簡単なCRUD(Create、Read、Update、Delete)の例だけでしたが、もちろん、条件文やJOINなども利用できますし、トランザクション境界も設定することができます。なお、Webアプリケーションに組み込む場合は、JARファイルをWEB-INF/libに置くだけで、他は変わりません。 今回はデータベースアクセス用のツール紹介がテーマでしたので、S2自体やAOPについては何も説明していませんが、S2Daoを使いこなしていく場合は、S2自体のしくみも理解しておくべきでしょう。幸い国産プロジェクトですので日本語ドキュメントも豊富です。 また、S2Daoは、マッピング設定は定数アノテーションで楽をすることができますが、AOPの設定を行う必要があります。この記述を支援するEclipseプラグインとして「Kijimuna」がありますので、興味のある方は利用してみてください(SeasarプロジェクトのWebサイトから入手できます)。 |
||||||||||||||||||||||||||||
| まとめ | ||||||||||||||||||||||||||||
|
今回は、データベース操作を効率化するためのツールの例としてS2Daoを紹介しました。Javaのデータベース操作は非常に煩雑、面倒、手間になりがちなので、何らかのデータベースアクセス用のツールを利用することをお勧めします。 |
||||||||||||||||||||||||||||
|
前のページ 1 2 3 4 |
||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||

