2007年10月24日

Java | S2JDBC

S2JDBC

via ひがやすをblog

ドキュメントに一通り目を通した。すばらしいデザインのAPI。

特に気に入ったのが「検索条件」で説明されているSimpleWhereクラスを使ってHibernateで言うところのCriteriaオブジェクトを組み立てるところ。「valueがnullの時は追加されません。」、「valuesの配列の長さが0の時は追加されません。 」という思いやりのお陰で入力値がnullじゃなければという冗長な条件節を省ける点がユニークで便利な機能だと思う。要件がピタリと合えば、相当楽チンになるはず。

ただ書いていて気付いたけど、こういう場合に僕は if (StringUtils.isNotBlank(departmentName)) と、nullだけじゃなくて空文字列やホワイトスペースだけの文字列も検索条件から外すケースが多いので、SimpleWhereクラスのようなnullチェックだけだと足りないかも知れない。

複雑なSQLが必要なときにはS2Dao使った方が良さそうに思うけど、Daoインターフェースを作るのが面倒くさい位のものであれば、ここで書かれているようにサービスクラスのメソッド内でサクッと実装しちゃうのが便利そう。
こうするとデータアクセス層を独立させたレイヤー構造は崩れちゃうけど、publicプロパティにしてもお堅いJavaの暗黙の縛りを解いて、開発効率を上げようという姿勢はいいと思う。

Seasar2では、トラブリにくくするために、いたずらに機能を増やすのではなく、トラブリやすい機能は意図的に削っています。
こういった潔さもGood。

Posted by otsuka : 01:15 | Comment (2) | Trackback (0)
Comment

提案ありがとうございます.以下のように対応しました.次のリリースに含まれます.
https://www.seasar.org/issues/browse/CONTAINER-103

Posted by: koichik : 2007年10月25日 22:22

リリースが楽しみです。とは言っても、すぐに使うことはなさそうですが。

Posted by: otsuka : 2007年10月26日 02:32









名前、アドレスを登録しますか?