0

我想使用连接池的一个Web应用程序和MySQL dbms。 如果我想强制连接为特定的方法将autocommit设置为false,那么这个连接(与autocommitt关闭)是否可能被其他请求使用?JDBC和Spring连接池

回答

0

是否有可能这个连接(与autocommitt关闭)被其他请求使用?

您应该始终检索Connection在最窄的范围内,这意味着,最好作为您的方法的局部变量。然后,您可以通过拨打Connection#setAutocommit并使用false关闭自动提交,并在使用连接对象后,关闭,关闭。请注意,这只会影响当前的交易,其他请求不会受到影响。

+0

但是,这种方式,如果在一个请求中,我有很多东西要处理数据库,我会打开并关闭很多很多连接,这是个好主意吗?我认为连接池被用来避免这种情况。 – Tobia

+0

@Tobia我刚才说你必须在最窄的范围内打开一个'Connection'。这并不意味着您可以在几个方法(通常作为参数)上重复使用同一个打开的“Connection”。 –

+0

@Tobia使用连接池并不意味着你不应该关闭连接。你必须总是**关闭它,然后连接池将关闭* closed *物理连接,并将其置于SLEEP模式或其他内容而不是关闭它(但这是数据库连接池的工作)。 –