Scala 释放从ConnectionPool借用的连接
Scala 释放从ConnectionPool借用的连接,scala,connection-pooling,scalikejdbc,Scala,Connection Pooling,Scalikejdbc,ScalikeJDBC的ConnectionPool说明: 借用连接 只需调用#借用方法即可 小心点。连接对象应由您自己释放 然而,没有提到如何做到这一点 我总是可以执行Connection.close(),但是通过“释放”Connection, 我知道我应该将连接返回到连接池,而不是关闭它(否则将无法达到创建连接池的目的) 我的疑问是: 一般来说,“释放”一个连接(从连接池借用的连接)意味着什么 在ScalikeJDBC中,如何“释放”从ConnectionPool借用的连接 调用clo
ScalikeJDBC的
ConnectionPool
说明:
借用连接 只需调用
#借用方法即可
小心点。连接对象应由您自己释放
然而,没有提到如何做到这一点
我总是可以执行Connection.close()
,但是通过“释放”Connection
,
我知道我应该将连接返回到连接池
,而不是关闭它(否则将无法达到创建连接池的目的)
我的疑问是:
一般来说,“释放”一个连接(从连接池借用的连接)意味着什么
在ScalikeJDBC
中,如何“释放”从ConnectionPool
借用的连接
调用close
可以。根据Oracle文档:关闭从池连接获得的连接实例不会关闭物理数据库连接。
。scalikejdbc中的DBConnection
只包装java.sql.Connection
并将调用委托给close
。scalikejdbc实现这一点的通常方法是使用using
函数,它本质上是Java的try-with-resources的一个实现
有关JDBC的类似讨论,请参阅。调用close
也可以。根据Oracle文档:关闭从池连接获得的连接实例不会关闭物理数据库连接。
。scalikejdbc中的DBConnection
只包装java.sql.Connection
并将调用委托给close
。scalikejdbc实现这一点的通常方法是使用using
函数,它本质上是Java的try-with-resources的一个实现
有关JDBC的类似讨论,请参阅。再次查看后,ScalikeJdbc
确实提供了一个,使用
方法实现贷款模式,该模式自动将连接返回到连接池
因此,您可以借用连接,使用它,然后将其返回到池中,如下所示:
import scalikejdbc.{ConnectionPool, using}
import java.sql.Connection
using(ConnectionPool.get("poolName").borrow()) { (connection: Connection) =>
// use connection (only once) here
}
// connection automatically returned to pool
第二次查看时,ScalikeJdbc
确实提供了一种方法,使用
实现贷款模式,自动将连接
返回到连接池
因此,您可以借用连接,使用它,然后将其返回到池中,如下所示:
import scalikejdbc.{ConnectionPool, using}
import java.sql.Connection
using(ConnectionPool.get("poolName").borrow()) { (connection: Connection) =>
// use connection (only once) here
}
// connection automatically returned to pool
虽然我添加了一个特定于ScalikeJdbc
的答案,但我接受这个答案,因为它是通用的,并且揭示了JDBC
连接池的基本细节,而我添加了一个特定于ScalikeJdbc
的答案,我接受这个答案是因为它是通用的,并且揭示了JDBC
连接池的基本细节