在某些情况下,我们应在查询前先输入setAutoCommit(false)
,请参阅此处https://jdbc.postgresql.org/documentation/head/query.html#query-with-cursor和When does the PostgreSQL JDBC driver fetch rows after executing a query?。
但是这些主题都没有提到在查询后ResultSet
和Statement
关闭但Connection
未关闭(可以由ConnectionPool
或DataSource
回收利用时如何做)。
我有这些选择:
autoCommit = false
用于下一个查询)autoCommit = true
哪个是最佳做法?
取决于您以后要做什么。如果要在操作后返回自动提交模式:
conn.setAutoCommit(true);
这将自动提交未结交易。