【发布时间】:2016-06-19 04:36:06
【问题描述】:
In this Play tutorial解释了如何使用JDBC连接池,包括一个访问数据库的例子。问题是不清楚如何将默认数据库分配给db 字段。
例如:
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)
}
}
我把db声明放在了方法中,而不是类参数中,但是意图是一样的。
注意:我使用的是 Play 2.5.2
【问题讨论】:
-
该示例显示您可以将其注入。看这行
class ScalaControllerInject @Inject()(db: Database) extends Controller -
问题是如果我用
val x = new ScalaControllerInject()实例化类,它会抛出一个错误,说我需要将Database指定为参数,我不知道在参数中放什么. -
为什么要实例化这个类? Guice 将创建它并提供所有依赖项。
-
谢谢,我现在明白了
标签: scala playframework playframework-2.5