Java连接池

aym*_*koo 5 java database connection-pooling jdbc

我搜索了连接池并阅读了它.如果我理解正确,连接池就像一组打开的连接.如果建立或创建了连接,则应将其添加到连接池中,如果该连接已关闭,则应在连接池中将其删除; 虽然它是开放的我可以一次又一次地使用它.

在阅读这些有关连接池的教程和解释时,我有一些问题:

  1. 是否只能在某台计算机上使用连接池?像ComputerA无法与ComputerB共享其连接池?

  2. 应该connection.close()放在哪里?

仅在选择/加载记录时使用连接是否正确?获得返回的记录/数据后,我在finally语句处关闭连接.与添加,编辑和删除记录相同.在处理过程中我放置了一个进度条,因此用户必须等待它完成并再次进行一些处理,这意味着我一次只能打开一个连接.

感谢您的解释.:)

Pau*_*ora 9

注意:我假设我们正在谈论java.sql.Connection界面.

是否只能在某台计算机上使用连接池?像ComputerA无法与ComputerB共享其连接池?

正在运行的应用程序和数据库之间存在连接.当然,两台不同的机器不能共享同一个运行的应用程序,因此它们无法与数据库共享连接.

应该connection.close()放在哪里?

你应该总是请确保调用close()Connection(通常在使用后的实例finally块).如果正在使用池,这实际上将在后台返回到池的连接.参考:关闭池中的JDBC连接

仅在选择/加载记录时使用连接是否正确?获得返回的记录/数据后,我在finally语句处关闭连接.

对,那是正确的.你不想手动挂到一个Connection参考-使用它来执行SQL/DML,然后通过调用回签入池close()finally块,就像你在干什么.

  • 一切都是正确的,如果您使用的是Java 7,则可以使用新的[AutoCloseable接口](http://docs.oracle.com/javase/7/docs/api/java/lang/Au​​toCloseable.html)而不是放置finally块中的close().查看[Oracle docs中的此示例](http://docs.oracle.com/javase/tutorial/essential/exceptions/tryResourceClose.html) (2认同)