ScalikeJDBC's
ConnectionPool
docs page says:
Borrowing Connections
Simply just call
#borrow
method.
import scalikejdbc._
val conn: java.sql.Connection = ConnectionPool.borrow()
val conn: java.sql.Connection = ConnectionPool('named).borrow()
Be careful. The connection object should be released by yourself.
However there's no mention of how to do it.
I can always do Connection.close()
but by 'releasing' Connection
,
I understand that I'm supposed to return the Connection
back to the ConnectionPool
and not close it (otherwise the purpose of having a ConnectionPool
would be defied).
My doubts are:
Connection
(that has been borrowed from ConnectionPool
) mean?ScalikeJDBC
, how do I 'release' a Connection
borrowed from ConnectionPool
?Calling close
is fine. As per the Oracle docs: Closing a connection instance that was obtained from a pooled connection does not close the physical database connection.
. The DBConnection
in scalikejdbc just wraps the java.sql.Connection
and delegates calls to close
. The usual way of doing this with scalikejdbc is with the using
function which is essentially an implementation of Java's try-with-resources.
See Closing JDBC Connections in Pool for a similar discussion on JDBC.