現在、javaの勉強中です。
そこで、ResultSetについて質問があります。
私は、今まで主にC#で開発をやっていました。
C#だと、クライアント(WindowsForm) → Webサーバー → APサーバー → DB
という構成で、サーバー間をデータセットでやり取りしていました。
ただ、javaは私のコーディングミスかもしれませんが、DBサーバーで取得した値を
ResultSetに入れて、Connectionやら、StatementをCloseすると、ResultSetも消滅してしまっています。
こういう場合は、取得直後に、なにか別のクラス変数などに移し変えるのが正しいのでしょうか?
ただ、そうなると、私の勝手な考えですが必要な列分の配列変数が必要なのでは?と、思ってしまっていて、
そうなると、ナンセンスだな・・・・と思っています。
ほかに何か良いやり方はあるのでしょうか?
それとも、そもそも、DB接続の専用クラスというものはJavaに必要なのでしょうか?
(上記のC#の考えでいけば、間のWebサーバーとAPサーバーが不要?)
よろしくお願いします。
No.2ベストアンサー
- 回答日時:
ConnectionやStatementをcloseするなら、ResultSetを配列変数に格納するしかないです。
この回答への補足
もし、配列変数に格納したくない場合は、ResultSetを使用したメソッド内で、ResultSet内のデータを使用しないと
いけないんでしょうか?
(finallyでcloseしたいので)
No.4
- 回答日時:
>Map recodeMap = new Map();
Mapはインターフェースなのでインスタンス化できません。
Map recodeMap = new HashMap();
とすればいいのではないでしょうか。
No.3
- 回答日時:
ResultSetはデータベースの検索結果へのマッピングなの。
だからStatementやConnectionをcloseすると
マッピング情報も参照できなくなってしまうのよ。
よくやるのは共通部品で
List resultList = new List();
while(resultSet.next() {
Map recodeMap = new Map();
recodeMap("カラム", resultSet.getObject("カラム");
resultList.add(recodeMap);
}
こんな風にしていったん格納しちゃう方法ね。
各処理で実装するならその検索専用のVOを作ることになるわ。
この回答への補足
試しにコーディングしてみたんですが
Map recodeMap = new Map();
というところで下記のエラーが出てしまいます。
「型 Map のインスタンスを生成できません」
調べてみても良い答えが見つかりませんでした。
何か、解決方法ってありますか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- オンラインゲーム MinecraftのJava版でマルチで遊ぶことになりまして友人がサーバーの管理者となりました。 し 1 2022/06/27 14:18
- サーバー Webサイト構築フリーランスの案件受注について 1 2022/03/27 18:16
- サーバー 接続・ログインはできているのにメールが送信できない 2 2022/06/27 15:03
- Java JavaでWebページ作成 7 2023/07/21 21:09
- その他(ゲーム) マイクラサーバーについて マインクラフト(minecraft)で中規模〜大規模な24時間のJavaサ 1 2022/04/03 16:48
- サーバー メールサーバーについて詳しい方、メールサーバーの管理業務経験のある方、教えてください。 3 2022/11/12 18:24
- PHP sessioncookieをではなくcookieを使わなければならない理由について… 4 2022/11/07 13:01
- サーバー ネットワークの構成に困っています 3 2023/07/05 11:55
- ドメイン・サーバー・クラウドサービス 独自ドメインでのNSレコード設定 1 2023/07/12 18:36
- UNIX・Linux Linuxサーバーのパーティション・ディレクトリの推奨見積もりについて 3 2023/01/17 00:46
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
JSPファイルで生じるエラーをど...
-
!と~について
-
正規表現について質問です。 カ...
-
Eclipseソース開発画面の行番号...
-
エクリプスのプログラミングに...
-
vba クリップボードクリアにつ...
-
ActivePerlの旧バージョンのダ...
-
エクセルVBAがMACで動かない
-
質問です。 Java言語を勉強出来...
-
Javaでのエラーについて
-
CrystalReportsのバージョン確...
-
pukiwikiのサーバ移転について
-
MSFormsとは何ですか?
-
リアルプレイヤーの古い(以前...
-
EclipseのJDBCドライバーについて
-
VBAでDVDのトレイを開く。、
-
オブジェクト指向について
-
エクセルでガントチャート
-
データベースのデータをTextBox...
-
IISワーカープロセスが原因でCP...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
PythonやJavaScriptのように実...
-
JSPファイルで生じるエラーをど...
-
javaのジェネリックスでTとEの...
-
javaでの#if 0 #endif文
-
データベースの形式を認識でき...
-
正規表現について質問です。 カ...
-
ダブルコロンとアロー演算子
-
Pure Javaとは?
-
誕生日パラドックス
-
javaの堅牢性とは
-
while文を使ってのアプリケーシ...
-
Javascriptで出来ること
-
java と javaScript の違いはな...
-
サーブレットとPHPの違い
-
ラダーとjavascriptを勉強した...
-
java初心者なのですが、論理演...
-
正規表現で特定の単語を除外したい
-
C, C#, C++, Javaに関していく...
-
JAVAの特徴
-
VScodeのターミナルの文字化け...
おすすめ情報