- ベストアンサー
javaのResultSetについて
- javaのResultSetについての質問と、ResultSetを使ったデータ取得時の注意点についてまとめます。
- C#とJavaでのデータ取得方法の違いについて質問しています。ResultSetの使い方やデータの格納方法についてのアドバイスをお願いします。
- JavaのResultSetを使ってデータを取得する際の注意点や、ResultSetの使い方について質問しています。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
ConnectionやStatementをcloseするなら、ResultSetを配列変数に格納するしかないです。
その他の回答 (4)
- askaaska
- ベストアンサー率35% (1455/4149)
Mapは例で書いただけだから HashMapでも何でも 好きなコレクションを使えば良いわよ。
お礼
なんとか、自分で納得できるようになるような構造でresultSetを 使用することが出来ました。 ありがとうございました。
- yamada_g
- ベストアンサー率68% (258/374)
>Map recodeMap = new Map(); Mapはインターフェースなのでインスタンス化できません。 Map recodeMap = new HashMap(); とすればいいのではないでしょうか。
お礼
なんとか、自分で納得できるようになるような構造でresultSetを 使用することが出来ました。 ありがとうございました。
- askaaska
- ベストアンサー率35% (1455/4149)
ResultSetはデータベースの検索結果へのマッピングなの。 だからStatementやConnectionをcloseすると マッピング情報も参照できなくなってしまうのよ。 よくやるのは共通部品で List resultList = new List(); while(resultSet.next() { Map recodeMap = new Map(); recodeMap("カラム", resultSet.getObject("カラム"); resultList.add(recodeMap); } こんな風にしていったん格納しちゃう方法ね。 各処理で実装するならその検索専用のVOを作ることになるわ。
お礼
なんとか、自分で納得できるようになるような構造でresultSetを 使用することが出来ました。 ありがとうございました。
補足
試しにコーディングしてみたんですが Map recodeMap = new Map(); というところで下記のエラーが出てしまいます。 「型 Map のインスタンスを生成できません」 調べてみても良い答えが見つかりませんでした。 何か、解決方法ってありますか?
- SaKaKashi
- ベストアンサー率24% (755/3136)
それぞれの言語の考え方なので、JavaのResultSetがいいとか悪いとか言ってもどうしようもないと。 その言語で可能なことをするしかないです。
お礼
回答ありがとうございます。 ということは、必要な列分だけ配列変数を作成というのが、javaでのResultSetの中身を保持し続ける方法?ということに なるんでしょうか?
補足
すいません。 要は、ActionクラスにSQLを記述してもいいのか?という事なんですが・・・
お礼
なんとか、自分で納得できるようになるような構造でresultSetを 使用することが出来ました。 ありがとうございました。
補足
もし、配列変数に格納したくない場合は、ResultSetを使用したメソッド内で、ResultSet内のデータを使用しないと いけないんでしょうか? (finallyでcloseしたいので)