CachedRowSetって思ってたのと違うなぁ
と言い切るほど,使い込んではいないけどね.:-)
ちょと思う所あって,Oracle使ってJDBC RowSet(JSR114)を試してみた.お相手は,CachedRowSetだ.
「非接続型」行セットと聞いてたんだけど,想い描いていたのと違ったよ.特に,setPageSize()やnextPage()といったページングデータまわり.
てっきり,元ネタに使ったResultSetを破棄しても,nextPage()とかできると思ったんだけど,やってみたらできなかった.orz
#環境のせいか?Oracle10gだと思ってて,実は9iだったとか?
意外とRowSetまわりの情報が無いので,思い違いをしてるだけなのかも知れない.ただ,Oracle JDBCドライバのマニュアルにあった一文にガッカリした.
注意:
データはすべてメモリーにキャッシュされるため、CachedRowSetには大量のデータを格納できません。したがって、大量のデータを戻す可能性のあるOracleCachedRowSetを問合せで使用しないことをお薦めします。
そーなんだ?
あと,CachedRowSetの使い方が,信じられないくらいダサいんだけど,こうゆうもんなのか?
ResultSet resultset = stmt.executeQuery(); RowSet rowset = new OracleCachedRowSet(); rowset.populate(resultset);
実装クラス指定でインスタンス化って,あんまりな気がするんだけど...
#JPAのせいか,RowSetはすっかり日陰者って感じ.