- PR -

Servletで取得したレコードを次へで5件づつ表示させたい

1
投稿者投稿内容
Hiro
会議室デビュー日: 2002/03/29
投稿数: 18
投稿日時: 2002-07-23 20:10
いつもお世話になります。
ServletでOracleから取得したレコードをここの会議室みたいに
次のページでレコードを移動させて次のページをを表示させるような
仕組みを構築したいと考えています。
現在、上記の作成方法がわからない為、取得したレコードを
全て表示していますが、件数が多いとやはりページの表示に時間がかかります。
IISのASPみたいにクライアントカーソルを作成してSession変数に保持する
ような仕組みがJavaにもあるのでしょうか?

いろいろHPを検索して見ましたが、そのような情報を見つけきれませんでしたので
ソースのサンプル等UpしているHPをご存知の方は教えて頂けないでしょうか。
又、手法をご存知の方はアドバイスを頂けないでしょうか。
以上、宜しくお願いします。

開発環境
Win2000 SP2 + Appache Tomcat4.0 + Oracle8.1.6

Hiro

NISHI
会議室デビュー日: 2002/07/26
投稿数: 3
投稿日時: 2002-07-26 11:41
PostgreSQLですと簡単ですがOracleでしたら
ROWNUMを使用し、ResultSetを保存しカーソルを記憶。
で実現できる気がします。
未確認ですが(^^;
masaki
常連さん
会議室デビュー日: 2001/12/10
投稿数: 26
投稿日時: 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を元にデータを表示。

Hiro
会議室デビュー日: 2002/03/29
投稿数: 18
投稿日時: 2002-07-30 19:53
NISHIさん masakiさんレスありがとうございます。
さっそくがんばってみます。

Hiro
1

スキルアップ/キャリアアップ(JOB@IT)