按照书中的示例,我使用setFetchSize()
查询表格。该书提到要重置setAutoCommit()
和setFetchSize()
(该书不会在其示例中关闭statement
和connection
,因此我的代码段不同。
val connection = db.getConnection()
val statement = connection.prepareStatement(sql)
connection.setAutoCommit(false)
statement.setFetchSize(25)
try {
...
} finally {
statement.setFetchSize(0) // Do I need to call it if I close the stmt?
connection.setAutoCommit(true)
statement.close()
connection.close()
}
重置自动提交对我来说很有意义,因为我想在close()
之后,连接对象可能会在稍后的连接池中重用。
但是,如果我需要在这种情况下重置提取大小,我很好奇。 connection.prepareStatement()
中的java.sql.Connection
状态的Javadoc:
@return一个包含预编译SQL语句的新默认
PreparedStatement
对象
我是否正确,在关闭statement
时,我不需要通过调用finally块中的setFetchSize(0)
来重置提取大小?
答案 0 :(得分:4)
关闭Statement
后,无法重复使用。重置fetchSize本身没有任何损害,但它没有任何用处。
答案 1 :(得分:1)
如果您关闭该语句,则无法重复使用它,因此您在关闭之前或之后对其执行的任何操作都不会更改。对于连接,一旦关闭它就不能重复使用它。(对于据我所知)