播放2.5 DB问题 - 使用依赖注入

时间:2016-05-08 18:10:09

标签: mysql jdbc playframework playframework-2.3

问题:

我在编辑时遇到了以下问题。

  

您在范围内没有隐式应用程序。如果你想   将当前运行的应用程序置于上下文中,请使用   依赖注入。

     

排队问题 - DB.withConnection {^

代码段:

object User {
  def getId(emailid: String): Option[Int] = {
    DB.withConnection { implicit c =>
      SQL("select id from user where email = {email}").on(
        'email -> emailid).as(SqlParser.scalar[Int].singleOpt)
    }
  }
}

如何解决问题?

2 个答案:

答案 0 :(得分:4)

User成为一个类,并将其注入您需要的地方。

class User @Inject() (db: Database) { ..}

在你的控制器中: class MyController @Inject() (user: User) extends Controller { // .. user.getId // .. }

在此处阅读更多内容:https://www.playframework.com/documentation/2.5.x/ScalaDatabase

答案 1 :(得分:3)

我认为你遇到的问题是这样的:

You do not have an implicit Application in scope: PlayFramework with Oracle

尝试导入' play.api.Play.current'的包,即在您的代码文件中添加以下内容

import play.api.Play.current
祝你好运