-S2の永続化ソリューション
以下、Seasar2上で利用される永続化ソリューションについてならべました。
- プロジェクト外ソリューション
- S2Hibernate
- S2DataSet
- XlsReader/XlsWriter
- ほかDBアクセスのものが予定されている
- SqlReader
- TableReader/TableWriter
- S2Dao
- S2JDBC
- ユーザーコード
IoCコンテナですから、プロジェクト外のソリューションをそのまま、もしくはユーザーコードでラップして搭載することが可能です。いくらか厚めのラップですがその方法で来ているのがS2Hibernate。適用としてはHibernateを利用している場合、もしくはHibernateをいくらかは知ってる技術者がS2シリーズの中では第一に選択することになるかと思います(すいません、今時点ではS2Hibernateは見ていないのです)。
S2オリジナルのSimple&Kind思想による永続化ソリューションがS2DataSetとS2Daoです。POJOとして実装しているのがS2DataSetで、AspectなアプローチがS2Daoになるかと、乱暴ながら違いがあります。これらの内、DBに永続化するものの実装に利用されているのがS2JDBCであり(ひがさんのコメント&BLOGでの説明による)ユーザーコード中で独自に利用することも可能です。
S2DataSetはテーブルベースでのデータアクセス形式をシンプルにAPI化していてExcelとDBとの相互永続化性を提供するソリューションです。各永続化リソース種ごとに用意されたDataReaderおよびDataWriterの実装から、APIで用意されているDataSet、DataTable、DataRow、DataColumnとメソッドでチェーンされるオブジェクトを介してデータ操作を行います。よって、利用するクライアントコード中では統一的でシンプルなAPIを記述することになります。
S2Daoは、SQLをとにかく自由に記述してデータ操作を行うソリューションです。利用するクライアントコードでは、データアクセスに関する記述を一切しません。SQLを記述したS2Daoの設定XMLをAspectで処理することによって、WeavingされたJavaインターフェイスおよび抽象クラス含むコンポーネントにデータアクセス機能を実装します。