ひがやすを技術ブログ

電通国際情報サービスのプログラマ

ResultSetWrapper

オラクルのユニコード問題に簡単に対処できるようにするためにResultSetのWrapperを
作っているのだけど、ResultSetっていったい幾つメソッドあるんだよごるぁ。
ResultSetWrapperを継承したOracleResultSetを作成し、
getString,setStringをオーバーライドして文字コードを変換する。
そして、ResultSetFactoryインターフェースを
実装したOracleResultSetFactoryを作成する。


public ResultSet createResultSet(PreparedStatement ps) {
ResultSet rs = PreparedStatementUtil.executeQuery(ps);
return new OracleResultSet(rs);
}
後は、このOracleResultSetFactoryをBasicSelectHandlerに登録します。
BasicSelectHandler.register(new OracleResultSetFactory());
実際は次のようにダイコンファイルで組み込みます。



@org.seasar.extension.jdbc.impl.BasicSelectHandler@register(
new foo.OracleResultSetFactory())


このResultSetWrapperの作成がメソッドが多いのでかなり鬱。
とはいえここで、DbUtilsみたいにProxy(AOP)は使いたくない。
それはなんか間違っていると思ふ。
複数のクラスにまたがって共通に使えるものでもないし。


こんな退屈なときには、品川の中心でエルメスと叫びたくなるよ。

だれか エルメス たのむ
ムーミンでも許す。
追記:しまった鋼の錬金術師ビデオ予約するの忘れた。
追記2:ラップするメソッドが@deprecatedなメソッドの場合、Eclipse
ワーニングを出すが、ラップしたメソッドにも@deprecatedをつければ、
ワーニングは消えます。