为Play Slick定义的db值在哪里?

时间:2016-06-10 17:02:43

标签: scala playframework slick

我尝试使用Slick in Play定义查询以按ID搜索行。我试图理解这一切是如何工作的,所以我实际上可以开发这个东西,而不是盲目地写我在网上发现的任何东西。这让我想找到什么' db'所有这些例子中的对象都是。

class UserDao @Inject()(protected val dbConfigProvider: DatabaseConfigProvider) extends HasDatabaseConfigProvider[JdbcProfile] {
    import driver.api._

    private class UsersTable(tag: Tag) extends Table[User](tag, "users") {
        def id = column[Int]("id", O.AutoInc, O.PrimaryKey)
        def name = column[String]("name")
        def age = column[Int]("age")
        def email = column[String]("email")

        def * = (name, age, email) <> (User.tupled, User.unapply _)
    }

    private val Users = TableQuery[UsersTable]

    def all: Future[Seq[User]] = db.run(Users.result)

    def insert(user: User): Future[Unit] = db.run(Users += user).map { _ => () }

    def read(id: Int): Future[User] = db.run(for (user <- Users; if user.id === id) yield user)

}

价值在哪里&#39; db&#39;来自&#39; db.run(...)&#39;来自?我在DatabaseConfigProvider源代码中找到了这一行,但我不理解它。

protected final def db: P#Backend#Database = dbConfig.db

dbConfig是一个DatabaseConfig对象,但是文档不会显示“db”和“db”。该对象上的value成员。

我正在使用PostgreSQL数据库,以防万一。我不这么认为,但我会在完整性的基础上添加这些细节。

我不知道这是从哪里来的,有人可以解释一下吗?

0 个答案:

没有答案