相关疑难解决方法(0)

虽然Connection之后关闭,但必须单独关闭JDBC结果集和语句吗?

据说在使用后关闭所有JDBC资源是一个好习惯.但是,如果我有以下代码,是否有必要关闭Resultset和Statement?

Connection conn = null;
PreparedStatement stmt = null;
ResultSet rs = null;
try {
    conn = // Retrieve connection
    stmt = conn.prepareStatement(// Some SQL);
    rs = stmt.executeQuery();
} catch(Exception e) {
    // Error Handling
} finally {
    try { if (rs != null) rs.close(); } catch (Exception e) {};
    try { if (stmt != null) stmt.close(); } catch (Exception e) {};
    try { if (conn != null) conn.close(); } catch (Exception e) {};
}
Run Code Online (Sandbox Code Playgroud)

问题是连接的关闭是否完成了工作,或者是否使用了一些资源.

java jdbc

245
推荐指数
6
解决办法
18万
查看次数

好的做法:JDBC连接

可能重复:
何时关闭JDBC中的Connection,Statement,PreparedStatement和ResultSet

我已经为JDBC连接编写了一个简单的包装器并且它可以工作,但我希望尽可能地使用最佳实践来改进它.它基本上有类似的方法open(),close(),isOpened(),select(),insert(),update(),delete()batch().为简单起见,我将仅在此处发布前4种方法.

public class Query{
    private Connection con;
    private PreparedStatement ps;
    private ResultSet rs;

    //Database.open() returns a Connection ready to use
    public void open (Database database) throws DatabaseException, SQLException{
        if (!isOpened ()){
            con = database.open ();
        }
    }

    public void close () throws SQLException{
        if (isOpened ()){
            if (ps != null) ps.close ();
            con.close ();
            con = null;
        }
    }

    public boolean isOpened …
Run Code Online (Sandbox Code Playgroud)

java jdbc

13
推荐指数
2
解决办法
3万
查看次数

标签 统计

java ×2

jdbc ×2