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 理解の近道でした。
このレベルで、ゴリゴリコーディングするのは、たいへんだし、保守性も悪い。
で、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 理解の近道でした。