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
    连接池的基本细节