• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:javaのResultSetについて)

javaのResultSetについて

このQ&Aのポイント
  • javaのResultSetについての質問と、ResultSetを使ったデータ取得時の注意点についてまとめます。
  • C#とJavaでのデータ取得方法の違いについて質問しています。ResultSetの使い方やデータの格納方法についてのアドバイスをお願いします。
  • JavaのResultSetを使ってデータを取得する際の注意点や、ResultSetの使い方について質問しています。

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

  • ベストアンサー
  • SaKaKashi
  • ベストアンサー率24% (755/3136)
回答No.2

ConnectionやStatementをcloseするなら、ResultSetを配列変数に格納するしかないです。

brave9977
質問者

お礼

なんとか、自分で納得できるようになるような構造でresultSetを 使用することが出来ました。 ありがとうございました。

brave9977
質問者

補足

もし、配列変数に格納したくない場合は、ResultSetを使用したメソッド内で、ResultSet内のデータを使用しないと いけないんでしょうか? (finallyでcloseしたいので)

その他の回答 (4)

  • askaaska
  • ベストアンサー率35% (1455/4149)
回答No.5

Mapは例で書いただけだから HashMapでも何でも 好きなコレクションを使えば良いわよ。

brave9977
質問者

お礼

なんとか、自分で納得できるようになるような構造でresultSetを 使用することが出来ました。 ありがとうございました。

  • yamada_g
  • ベストアンサー率68% (258/374)
回答No.4

>Map recodeMap = new Map(); Mapはインターフェースなのでインスタンス化できません。 Map recodeMap = new HashMap(); とすればいいのではないでしょうか。

brave9977
質問者

お礼

なんとか、自分で納得できるようになるような構造でresultSetを 使用することが出来ました。 ありがとうございました。

  • askaaska
  • ベストアンサー率35% (1455/4149)
回答No.3

ResultSetはデータベースの検索結果へのマッピングなの。 だからStatementやConnectionをcloseすると マッピング情報も参照できなくなってしまうのよ。 よくやるのは共通部品で List resultList = new List(); while(resultSet.next() { Map recodeMap = new Map(); recodeMap("カラム", resultSet.getObject("カラム"); resultList.add(recodeMap); } こんな風にしていったん格納しちゃう方法ね。 各処理で実装するならその検索専用のVOを作ることになるわ。

brave9977
質問者

お礼

なんとか、自分で納得できるようになるような構造でresultSetを 使用することが出来ました。 ありがとうございました。

brave9977
質問者

補足

試しにコーディングしてみたんですが Map recodeMap = new Map(); というところで下記のエラーが出てしまいます。 「型 Map のインスタンスを生成できません」 調べてみても良い答えが見つかりませんでした。 何か、解決方法ってありますか?

  • SaKaKashi
  • ベストアンサー率24% (755/3136)
回答No.1

それぞれの言語の考え方なので、JavaのResultSetがいいとか悪いとか言ってもどうしようもないと。 その言語で可能なことをするしかないです。

brave9977
質問者

お礼

回答ありがとうございます。 ということは、必要な列分だけ配列変数を作成というのが、javaでのResultSetの中身を保持し続ける方法?ということに なるんでしょうか?

brave9977
質問者

補足

すいません。 要は、ActionクラスにSQLを記述してもいいのか?という事なんですが・・・

関連するQ&A