Java 7 Automatic Resource Management JDBC (try-with-resources statement)
2022-09-01 05:21:31
如何将创建/接收连接、查询数据库并可能处理结果的常见 JDBC 习语与 Java 7 的自动资源管理(try-with-resources 语句)集成在一起?(教程)
在Java 7之前,通常的模式是这样的:
Connection con = null;
PreparedStatement prep = null;
try{
con = getConnection();
prep = prep.prepareStatement("Update ...");
...
con.commit();
}
catch (SQLException e){
con.rollback();
throw e;
}
finally{
if (prep != null)
prep.close();
if (con != null)
con.close();
}
使用Java 7,您可以选择:
try(Connection con = getConnection(); PreparedStatement prep = con.prepareConnection("Update ..."){
...
con.commit();
}
这将关闭 和 ,但是回滚呢?我无法添加包含回滚的 catch 子句,因为连接仅在 try 块中可用。Connection
PreparedStatement
是否仍在 try 块之外定义连接?此处的最佳做法是什么,尤其是在使用连接池的情况下?