Ich gründe wie so ein glattes Datenbankobjekt aus typsichere Konfiguration up:Rückkehr db Verbindung zu HikariCP Pool mit Slick 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)
}
Das Config Objekt sagt Slick HikariCP zu verwenden, etwa so:
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"
}
Nach der Instanziierung des DatabaseService kann ich Abfragen ausführen, indem Sie dbService.db.run(someQuery)
ausführen.
Die erste Frage ist, muss ich etwas tun, um eine Verbindung aus dem Pool zu bekommen, oder passiert das hinter den Kulissen, wenn ich db.run()
aufrufen?
Zweitens, sobald diese Abfrage oder Abfragen ausführen, wie gebe ich die aktuelle Datenbankverbindung zum Verbindungspool zurück?
Super danke für die Verknüpfung des Codes in Ihrer Antwort! Wissen Sie, wo ich eine Liste der vollständigen Konfigurationsoptionen für die Datenbank-Klasse finden kann? Scheint nicht eins in den Dokumenten zu sein. – novon
Bei [der Methode scaladocs, 'forConfig] (http://slick.lightbend.com/doc/3.1.1/api/index.html#[email protected] (Pfad: String, config: com.typesafe.config.Config, Treiber: java.sql.Driver, classLoader: ClassLoader): JdbcBackend.this.Database) (Sie müssen die Methodendokumentation erweitern). Es wurde [hier] verlinkt (http://slick.lightbend.com/doc/3.1.1/database.html). – marcospereira
Ah habe ich total vermisst, das Symbol zu erweitern. Danke noch einmal! – novon