Webアプリ内でDB接続する場合にSQLの最大数(ResultSetやStatementの数)は指定できると思いますが、例えば3を指定した場合、以下の手順の2回目にはcloseしていないためエラーとなってしまうのでしょうか?
それともStatementなどをローカル変数にしておけばメソッド終了時などにcloseされて最大数に達することはないのでしょうか?
そのうち解放されるなどあるのかだんだんカウントアップされてしまうのかがよくわかりません。
1.Connectionを取得
2.StatementとResultSetを使用してSQL発行
3.close処理(Connectiion,Statement,ResultSet)は明示的に実施しない
4.何回か1と2を実施
public void test() {
methodA();
methodA();
methodA();
}
public void methodA(){
Connection con = getConnection();
Statement st = con.getStatement();
ResultSet rs = ・・・・
}
No.1ベストアンサー
- 回答日時:
「おやっさん、このプログラム結果はどうなるねん」「前回って、 GC に聞いとくれ」
http://ja.wikipedia.org/wiki/%E9%B0%BB%E5%B1%8B_ …
con, st, rs にあるいずれのインスタンスも methodA() を抜けた時点でガベージコレクションの対象になります。また、Connection, Statement, ResultSet のインターフェースを実装したクラスでは、いずれもインスタンスが破棄される時点で保持しているリソースを開放するように実装されているのが普通です。
しかし、ガベージコレクションが処理対象となったインスタンスをいつ破棄するかはガベージコレクションの処理次第で、プログラマが関与できるものではありません。……System#gc()? ああ、そういうメソッドもありましたね。でも、それを実行したところでガベージコレクション対象のインスタンスが必ず解放されるという保証はありません。
http://www.ibm.com/developerworks/jp/websphere/l …
http://music.geocities.jp/kreisler_liebesleid/ja …
つまり、Java ではインスタンスを開放するタイミングを指定することはできません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP クエリObjectをforeachで回す時に、次のレコードへ移動せずに次のレコードを取得したい 2 2022/07/28 15:29
- PHP PHP MySql ページング 2 2022/09/20 06:38
- Ruby pandasでsqlite3にテーブル作成・追加・読み出しでindexの取り扱い方教えてください 5 2023/03/08 09:57
- PHP 【PHP/MySQL】コード上で生成したクエリを基に集計クエリを作りたい 1 2022/07/28 15:06
- Visual Basic(VBA) access count数を変数に格納 2 2022/03/30 19:21
- Visual Basic(VBA) データベースから絞り込んでデータを読み込み 1 2023/02/21 19:51
- Visual Basic(VBA) マクロVBA 1シートをまとめる 閉じ方 初心者 SOS! 1 2022/06/17 14:54
- Java java 入力 3 4 3 出力 ABC DEFG HIJ このようなプログラムの書き方を教えてくだ 2 2022/07/15 14:18
- Java java 飾子を付けること(public static・・・) ・コンソールへの出力処理はmainメ 2 2022/06/16 19:34
- C言語・C++・C# スタックフレームの消滅 6 2023/05/20 12:33
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
インスタンス参照でアクセスで...
-
private static という変数の修飾
-
C#において、同じインスタンス...
-
変数名の付け方
-
生成したインスタンスを削除す...
-
VB.NET getとsetの概念がわかり...
-
C# インスタンスの破棄
-
C#「オブジェクト参照が必要で...
-
他のファイルの変数参照
-
複数の変数を宣言する時、同時...
-
[Visual C#] 優先される処理に...
-
サーブレットでレスポンスが返...
-
インスタンスを同じ名前で作成...
-
文字列を日付に変換でParseExce...
-
エクセル(複数インスタンス)...
-
サーブレットのスレッド管理に...
-
C#のスレッド処理について、ご...
-
MDIでフォームがアクティブにな...
-
VB6.0で、DLLを動的に参照したい
-
インスタンス生成で、○○.xxx();...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
変数名の付け方
-
インスタンス参照でアクセスで...
-
複数の変数を宣言する時、同時...
-
private static という変数の修飾
-
VB.NET getとsetの概念がわかり...
-
C#において、同じインスタンス...
-
生成したインスタンスを削除す...
-
C# インスタンスの破棄
-
newしないインスタンス?実体化...
-
SQLを連続発行する時の正しい(?...
-
「インスタンス」の意味をわか...
-
文字列を日付に変換でParseExce...
-
変数の参照でエラーが出てしま...
-
フォームの存在をチェックする方法
-
javaのクラスの作り方、エラー...
-
オブジェクト参照がオブジェク...
-
String a = "a"; と String b =...
-
エクセル(複数インスタンス)...
-
C#「オブジェクト参照が必要で...
-
他のファイルの変数参照
おすすめ情報