- - PR -
RowSetとDBCPの併用
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2005-12-28 09:24
お世話になっております。
現在開発中のシステムの機能として大規模な掲示板を組み込まなくてはならないため、CachedRowSetの利用を考えたのですが、Commons-DBCPとの組み合わせ方が判らず困っています。 システム自体は、フレームワークにStrutsを利用したWebアプリケーションで、J2EE1.4を使用しています。DBはOracle9iです。 RowSetを使わないのであれば、StrutsのActionクラスでgetDataSourceメソッドによりデータソースを取得し利用するのですが、RowSetの場合ですと内部でConnectionの取得を行っている様なのでgetDataSourceメソッドが利用出来ません。 RowSetに関する文献と私の知識が少ないため想像の域を出ないのですが、RowSetにsetDataSourceNameというメソッドがある所を見ると、データソースのプーリングまでRowSetが行ってくれるのでしょうか? もしそうだとした場合、setDataSourceNameに指定するデータソース名にどういった物を指定するべきなのか併せてご教授願いたく、どなたか宜しくお願いいたします。 |
|
投稿日時: 2005-12-28 10:46
こんにちは。米山@クロノスです。
実際に使ったことはないので確かではないですが、 単純にDataSourceから取得したConnectionを用いてクエリを発行し、 帰ってきたResultSetオブジェクトをCachedRowSetオブジェクトのpopulate() メソッドに渡してやる方法ではダメでしょうか? CachedRowSetImpl crs = new CachedRowSetImpl(); crs.populate(rs) |
|
投稿日時: 2005-12-28 11:08
早速のご返答有り難うございます。
私もResultSetを取得後RowSetにpopulateする方法は考えたのですが、RowSetのexecuteを呼んだ場合と(データ取得後のRowSetに対して)全く同じ扱いが出来るのか定かではなかったため、使用をためらっていました。 確かにpopulateを利用する方が既存のモジュールを流用出来るため楽ではありますし、現状では他の方法が不明なため、前述の方法を採用しようと思います。ご助言有り難うございました。 #問題は解決しましたが、やはりRowSet内部でコネクションがどのように扱われているのか気になります。 #ベンダの実装にもよるのでしょうがプーリングまでしてくれるんでしょうかねぇ・・・? |
1