In this Play tutorialこれには、データベースにアクセスするための例を含め、JDBC接続プールの使用方法が説明されています。問題は、デフォルトのデータベースをdb
フィールドに割り当てる方法が明確でないことです。例えばScalaのPlayでデフォルトのJDBCデータベースにアクセスする
:
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)
}
}
私はこの方法でデシベル宣言の代わりに、クラス・パラメータを置くが、意図は同じです。
注:私はあなたがdocumentationを見てたとき、あなたはあなたのコントローラに(application.conf
で構成された)デフォルトのDBを注入する方法を見ることができます2.5.2
この例では、注入することができます。この行を見てください。 'class ScalaControllerInject @Inject()(db:Database)extends Controller' –
問題は、' val x = new ScalaControllerInject() 'でクラスをインスタンス化すると、エラーがスローされます。データベース 'をパラメータとして使用し、パラメータに何を入れるべきかわかりません。 – ps0604
なぜこのクラスをインスタンス化しますか? Guiceはそれを作成し、すべての依存関係を提供します。 –