基本上我有(忽略异常处理等):在Derby(JDBC)中提交事务之前,我可以关闭事务中的语句吗?
connection.setAutoCommit(false);
Statement statement1 = connection.createStatement();
statement1.executeUpdate("...");
statement1.close();
Statement statement2 = connection.createStatement();
statement2.executeUpdate("...");
statement2.close();
connection.commit();
如果我理解正确的话应该不会有任何影响,因为它所做的事情是免费为GC的资源。 Especially with Derby:当不再需要时,您应该显式关闭语句,结果集和连接。与Derby的连接是应用程序外部的资源,垃圾收集器不会自动关闭它们。
但它会导致交易的任何问题?我不相信交易依赖于该声明。任何人都可以请确认吗?
看来,如果关闭一个Statement,_transaction_仍然在数据库端打开(等待提交或回滚)。只有在向连接发出提交或回滚命令时才结束/关闭。我对吗? – ADTC