- - PR -
Servletで取得したレコードを次へで5件づつ表示させたい
1
| 投稿者 | 投稿内容 |
|---|---|
|
投稿日時: 2002-07-23 20:10
いつもお世話になります。
ServletでOracleから取得したレコードをここの会議室みたいに 次のページでレコードを移動させて次のページをを表示させるような 仕組みを構築したいと考えています。 現在、上記の作成方法がわからない為、取得したレコードを 全て表示していますが、件数が多いとやはりページの表示に時間がかかります。 IISのASPみたいにクライアントカーソルを作成してSession変数に保持する ような仕組みがJavaにもあるのでしょうか? いろいろHPを検索して見ましたが、そのような情報を見つけきれませんでしたので ソースのサンプル等UpしているHPをご存知の方は教えて頂けないでしょうか。 又、手法をご存知の方はアドバイスを頂けないでしょうか。 以上、宜しくお願いします。 開発環境 Win2000 SP2 + Appache Tomcat4.0 + Oracle8.1.6 Hiro |
|
投稿日時: 2002-07-26 11:41
PostgreSQLですと簡単ですがOracleでしたら
ROWNUMを使用し、ResultSetを保存しカーソルを記憶。 で実現できる気がします。 未確認ですが(^^; |
|
投稿日時: 2002-07-26 13:05
MVCモデルであれば、以下のような感じになると思います。
(1)Servletから呼び出された業務Beanで、取得したOracleデータをコレクションBean(例:sample.Items)に格納してServletに返却する。Oracleは即切断してコネクションプールに戻す。 (2)Servletで、session.setAttribute( "items", items )してからJSPを呼び出す。 (3)JSPで、<jsp:useBean id="items" class="sample.Items" scope="session" />してコレクションBeanを復元。コレクションBeanにはgetCount()やgetItem( int index )みたいなメソッドを実装させておき、これを元にデータを表示。 コレクションBeanを作るのが面倒くさければ、とりあえずはVectorでもいいと思います。 同様のことをASPで表現しようとした場合は、以下のような感じでしょうか? (1)制御ASPから呼び出された業務COMで、adUseClientモードで取得したOracleデータをADODB.Recordsetに格納して制御ASPに返却する。Oracleは即切断してコネクションプールに戻す。 (2)制御ASPで、Set Session( "items" ) = itemsしてから表示ASPにRedirectする。 (3)表示ASPで、Sessionから取り出したADODB.Recordsetを元にデータを表示。 |
|
投稿日時: 2002-07-30 19:53
NISHIさん masakiさんレスありがとうございます。
さっそくがんばってみます。 Hiro |
1
