簡體   English   中英

使用jdbc時何時關閉Statement

[英]When to close Statement when using jdbc

我正在使用odbc連接Java中的mysql數據庫

我編寫了一個函數“ ExecuteQuery”,它將字符串參數作為sql語句並返回其結果集。 但是,什么時候應該關閉語句對象? 如果我在函數Exec​​uteQuery中將其關閉,則返回的結果集也將被關閉。 如果我不關閉它,則會發生內存泄漏,因為我在調用方中沒有語句對象的引用。 謝謝

您采用錯誤的方法。 如果您確實需要這樣的功能(令人懷疑),請使其接受一個Statement作為參數,並創建一個單獨的函數來創建和設置該語句。 然后,您可以將函數和ResultSet工作包裝在try..finally塊中,並finally關閉語句。

例如

Statement statement = getStatement();
try {
    ResultSet rs = executeQuery(statement, query);
    ...
} finally {
    statement.close();
}

但是,如果遇到此類問題,則可能需要重新考慮您的體系結構。 Hibernate為例。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM