<< テーブル設計 "いやな臭い" | main | iBatis 1+N 関連の SELECT >>

Spring iBatis で O/R マッピング

Java で、データベースアクセスをする基本手段は、 JDBC API。
このレベルで、ゴリゴリコーディングするのは、たいへんだし、保守性も悪い。

で、Spring の登場。

まず、 JDBC サポート。 

JdbcTemplate クラスを使うと、コネクション処理などパターン化された処理を、簡単に記述できる。

あと、ResultSet の内容を、オブジェクトやオブジェクトのコレクションにマッピングすることも、パターン化されたやり方で、エレガントにコーディングできる。

SQL 例外も、ベンダーの依存性をなくして、抽象化したり、ランタイム例外にして、上位のプログラムでは、例外処理を記述不要にしたり、なかなか便利。

とは、いっても、やはり Java のプログラムをゴリゴリ書く、というイメージは残るやり方。

で、登場するのが、 Spring の iBatis サポート。

ResultSet とオブジェクトのマッピングや、検索パラメータを保持したオブジェクトから、SQL文にパラメータを埋め込んだり、動的にSQL文を生成する方法を、すべて、XMLファイルで記述する。

Spring と iBatis を使えば、データベースアクセスについて、プログラミングは極端に少なくなる。 
JDBC API でゴリゴリ書いた人なら誰でも感じる「同じパターンの繰り返し」を、なくせる。
Java プログラムに埋め込まれた SQL文の断片より、XML ファイルに宣言した SQL のほうが、書きやすいし、保守も格段に楽ができる。

最初に使うと、なんでこんなに簡単にできるの?という、ちょっとマジックでも見せられた気分。

とはいっても、現実のデータベースアクセスに使うとなると、もちろん習得するべきことは多いし、最初はなかなかたいへん。

この時、結局、役にたつのは、基礎知識です。

つまり、

レベル1: JDBC API を理解し、使い込んだ経験
レベル2: Spring JDBC サポートが提供する利便性とその仕組み
レベル3: Spring iBatis サポートが提供するさらなる利便性

というように、まずは、ネイティブの JDBC API をきちんと理解すること。
次に、いきなり、 iBatis にいかないで、 Spring の JDBC サポートを理解する。
(もちろん、前提として、 Spring のコアテクノロジーの ApplicationContext の基礎は理解する)

急がば回れです。

少なくとも、私の経験では、iBatis のサンプル、ドキュメントと格闘するより、Spring の JDBC サポート を最初に理解してしまうのが、 iBatis 理解の近道でした。

コメント
DDDをキーにネットサーフィンしていたら、こちらにたどり着きました。
理論だけじゃなく実践的な内容ですごく楽しませてもらってます。
それに、設計の面白さがすごく伝わってきます。
設計から実装に落とし込む部分にも興味がありますので、今後も楽しみにしています。
  • masa
  • 2007/12/03 12:01 PM
はじめまして、 masa さん。
コメントありがとうございます。
楽しんでもらえているなんて、ほんとうれしいです。

最近、いろいろあって書いてなかったけど、また続けようと思います。

よろしくお願いします。
  • masuda220
  • 2007/12/08 10:29 AM
コメントする









この記事のトラックバックURL
トラックバック
calendar
   1234
567891011
12131415161718
19202122232425
2627282930  
<< November 2017 >>
システム設計日記を検索
プロフィール
リンク
システム開発日記(実装編)
有限会社 システム設計
twitter @masuda220
selected entries
recent comment
  • 番号より名前。 ニーモニックコードより名前。 【パターン】
    師子乃 (03/10)
  • Smart UI が優れている?
    masuda220 (03/10)
  • Smart UI が優れている?
    kagehiens (03/09)
  • オブジェクト指向プログラミングの教え方?
    masuda220 (12/05)
  • オブジェクト指向プログラミングの教え方?
    ZACKY (12/04)
  • 「オブジェクトの設計力」 スキルアップ講座やります
    masuda220 (08/14)
  • 「オブジェクトの設計力」 スキルアップ講座やります
    kompiro (08/14)
  • 「オブジェクトの設計力」 スキルアップ講座やります
    masuda220 (06/13)
  • 「オブジェクトの設計力」 スキルアップ講座やります
    JHashimoto (06/13)
  • 「オブジェクトの設計力」 スキルアップ講座やります
    masuda220 (02/28)
recent trackback
categories
archives
others
mobile
qrcode
powered
無料ブログ作成サービス JUGEM