如果我打开一个PreparedStatement
,然后创建一个新的而不关闭旧的C0,会不会有问题?还是强制关闭它?下面的代码有任何含义吗?
PreparedStatement stmt = con.preparedStatement(someQuery);
int result=stmt.executeUpdate();
//some logic...
//some more logic goes here..
stmt=con.preparedStatement(nextQuery); //do I have to say stmt.close() before this line?
stmt.setString(1,something);
result=stmt.executeUpdate();
注意,我已经在上面的代码中重用了PreparedStatement
变量。请问有什么问题吗?
PreparedStatement包含已预编译的SQL语句。在您的情况下,不需要关闭prepareStatement(当您再次使用同一连接对象定义第二个连接对象时)。请在关闭连接之前最后将其关闭。请参考PS上的官方Java文档以获取更多信息https://docs.oracle.com/javase/tutorial/jdbc/basics/prepared.html
此外,如果要一次执行两个语句,请考虑将连接对象的autoCommit属性设置为false,然后在最后提交。