【发布时间】:2016-11-09 04:31:52
【问题描述】:
我正在从类型安全配置中设置一个光滑的数据库对象,如下所示:
import com.typesafe.config.Config
class DatabaseService(configKey: String, config: Config) {
val driver = slick.driver.MySQLDriver
import driver.api._
val db = Database.forConfig(configKey, config)
}
配置对象告诉 Slick 使用 HikariCP,如下所示:
db {
numThreads = 5
connectionTimeout = 30000
maximumPoolSize = 26
driver = "com.mysql.jdbc.Driver"
url = "jdbc:mysql://localhost:3306/some_db?useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC&useSSL=false"
user = "root"
password = "root"
connectionPool = "HikariCP"
}
实例化 DatabaseService 后,我可以通过运行 dbService.db.run(someQuery) 来运行查询。
第一个问题是我是否需要做一些事情来从池中获取连接,或者当我调用 db.run() 时,这是否会在幕后发生?
其次,一旦执行该查询或查询,我如何将当前数据库连接返回到连接池?
【问题讨论】: