我從類型安全配置,像這樣建立一個靈活的數據庫對象:回到DB連接到HikariCP池用油滑3.1.X
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)
}
配置對象告訴油滑使用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()
時發生在幕後嗎?
其次,一旦該查詢或查詢執行,我該如何將當前數據庫連接返回到連接池?
非常感謝您在答案中鏈接代碼!你碰巧知道我在哪裏可以找到數據庫類的完整配置選項列表?似乎不是文檔中的一個。 – novon
在[scaladocs,'forConfig'方法](http://slick.lightbend.com/doc/3.1.1/api/index.html#slick.jdbc.JdbcBackend$DatabaseFactoryDe[email protected](path:String,config: com.typesafe.config.Config,驅動程序:java.sql.Driver,classLoader:ClassLoader):JdbcBackend.this.Database)(您需要展開方法文檔)。它被鏈接在這裏(http://slick.lightbend.com/doc/3.1.1/database.html)。 – marcospereira
啊我完全錯過了展開圖標。再次感謝! – novon