In this Play tutorial Es wird erläutert, wie Sie einen JDBC-Verbindungspool verwenden, einschließlich eines Beispiels für den Zugriff auf die Datenbank. Problem ist, dass es nicht klar ist, wie die Standarddatenbank dem Feld db
zugewiesen wird.Zugriff auf die Standard-JDBC-Datenbank in Play für Scala
Zum Beispiel:
class ScalaControllerInject @Inject() extends Controller {
def index = Action {
var outString = "Number is "
val db: Database = ??? // How to assign the default database to db?
val conn = db.getConnection()
try {
val stmt = conn.createStatement
val rs = stmt.executeQuery("SELECT 9 as testkey ")
while (rs.next()) {
outString += rs.getString("testkey")
}
} finally {
conn.close()
}
Ok(outString)
}
}
Ich habe die DB-Deklaration in der Methode anstelle der Klassenparametern, aber die Absicht ist das gleiche.
Hinweis: Ich verwende Wiedergabe 2.5.2
Das Beispiel zeigt, dass Sie es injizieren können. Sehen Sie sich diese Zeile 'class ScalaControllerInject @Inject() (db: Database) erweitert Controller' –
Problem ist, dass, wenn ich die Klasse mit 'val x = new ScalaControllerInject()' instanziiere es eine Fehlermeldung, dass ich die' Datenbank als Parameter, und ich weiß nicht, was ich in den Parameter eingeben soll. – ps0604
Warum würden Sie diese Klasse instanziieren? Guice wird es erstellen und alle Abhängigkeiten bereitstellen. –