OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

ResultSetオブジェクトのメソッドについて

  • 困ってます
  • 質問No.218822
  • 閲覧数1195
  • ありがとう数1
  • 気になる数0
  • 回答数1
  • コメント数0

お礼率 100% (10/10)

AccessでつくったRDBにJDBCで接続してデータを表示させたいのですが、ResultSetオブジェクトのprevious()メソッドやfirst()メソッドを使うとうまくいまず困ってます。
下記のプログラムを実行するとエラーになります。
------------------------------------------------
(省略)
int r = 0;
while(resultset.next()){
r++;
}
while(resultset.first()){
}
------------------------------------------------
又は
------------------------------------------------
(省略)
int r = 0;
while(resultset.next()){
r++;
}
while(resultset.previous()){
String 変数名 = resultset.getString("フィールド名"); // タイトル名を取得/
(省略)
------------------------------------------------
エラー
-----------------------------------------------
javax.servlet.ServletException: Result set type is TYPE_FORWARD_ONLY
-----------------------------------------------
#カーソルのバックはできない?

next()メソッドを使った後に、取得したデータの処理はどの様にすればよいのかがわかりません。

ご教授お願いします。
通報する
  • 回答数1
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.1

エラーメッセージに出力されている通り、例えば

Statement st = connection.createStatement();
ResultSet resultset = st.executeQuery(SQL文);

という風にResultSet オブジェクトを取得した場合、ResultSet のオブジェクトは
順方向(TYPE_FORWARD_ONLY)で取得されます。
このためカーソルを戻そうとする(previos()やfirst()を使う)とSQLExceptionが発生します。

これを回避するためには、

Statement st = connection.createStatement (
  ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
ResultSet resultset = st.executeQuery(SQL文);

のように設定します。
これだと、エラーを発生させずに、previos()やfirst()を使用することができます。

なお、上記の例だと、

int r = 0;
while(resultset.next()) {
 r++;
 String 変数名 = resultset.getString("フィールド名");
}

としてやれば、わざわざprevios()メソッドを使う必要がないように思いますが。。。
お礼コメント
bushikun

お礼率 100% (10/10)

spoonyさん、ご回答ありがとうございました。
無事に、データ表示することができました。
大変、助かりまた勉強になりました。

>nt r = 0;
>while(resultset.next()) {
> r++;
> String 変数名 = resultset.getString("フィールド>名");
>}
>
>としてやれば、わざわざprevios()メソッドを使う必要がないように思いますが。。。

取得したデータの処理をする前に、データ数を数えたかったのであの様なプログラム順序にしました。他にもっといい方法があると思うのですが。。。
投稿日時 - 2002-02-17 09:23:33
-PR-
-PR-
このQ&Aのテーマ
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ