java – JDBC连接/结果集/语句的最佳实践是什么
发布时间:2020-12-15 08:42:01 所属栏目:Java 来源:网络整理
导读:我想知道以下代码片段的最佳实践是什么,每次在每个’if’内完成executeQuery时我是否必须关闭所有stmt和rs,或者我现在可以这样做,在runOnSqlServer结束时关闭rs和stmt,并在结束时关闭连接方法?感谢您的任何指示! public void runOnSqlServer(Connection co
我想知道以下代码片段的最佳实践是什么,每次在每个’if’内完成executeQuery时我是否必须关闭所有stmt和rs,或者我现在可以这样做,在runOnSqlServer结束时关闭rs和stmt,并在结束时关闭连接方法?感谢您的任何指示!
public void runOnSqlServer(Connection con,String[] params,String db){ try{ Statement stmt = con.createStatement(); ResultSet rs = null; if(isVer){ rs = stmt.executeQuery(micro_verSql); commonAct(rs,getParameter("isVer"),1); } if(isInfo){ rs = stmt.executeQuery("SELECT DATABASEPROPERTYEX('"+db+"','COLLATION')"); commonAct(rs,getParameter("isInfo"),1); } }catch(SQLException){ ..... }finally{ stmt.close(); rs.close(); } } public void run(CommandContext ctx) { try{ ... runOnSqlServer(con,params,sqldb); ... }catch(Exception ex){ }finally{ if (con != null) con.close(); } } 解决方法
恕我直言,您应该在方法完成后关闭语句和结果集(在最后),但每次重新使用它时关闭ResultSet也应该在完成连接时始终关闭连接.
编辑:重新初始化 ResultSet set = statement.executeQuery(); set = statement2.executeQuery(); 您正在将ResultSet“set”设置为新的结果集.原始集合现在没有指向任何东西,但仍然等待收集. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |