如果我们使用特定的数据源,如何在Play Framework(Scala,Scaldi)中注入数据库?

时间:2017-05-07 05:43:18

标签: database dependency-injection playframework scaldi

我想在我的play框架项目中使用Anorm作为DB库,将Scaldi作为DI。但是现在我无法注入数据库,因为在最新的游戏框架中,我们不能再使用DB.getConnection(" datasource")。

你们中的任何人都可以解释如何将NamedDatabase控制到scaldi环境?

顺便说一下,我的代码了解了如何在Play scala中使用NamedDatabase。

class MembershipSqlStorage @Inject() (@NamedDatabase("membership") db: Database)

它有效。

由于

1 个答案:

答案 0 :(得分:-1)

PlayFramework为Anorm DB库Scaldi DI提供了有用的文档。

您可以参考:

https://www.playframework.com/documentation/2.6.x/Tutorials

https://www.playframework.com/documentation/2.6.x/PlaySlick

您需要将Anorm和JDBC插件添加到依赖项中:

libraryDependencies ++ = Seq(   JDBC,   “com.typesafe.play”%%“anorm”%“2.5.1” )

首先,

“import anorm ._”

然后只需使用SQL对象创建查询。你需要一个Connection来运行一个查询,你可以在DI的帮助下从play.api.db.DB帮助器中检索一个 -

database.withConnection {implicit c =>

val result:Boolean = SQL(“Select 1”)。execute()

}

要在播放应用程序中添加Scaldi支持,您需要在build.sbt中包含scaldi-play:

libraryDependencies + =“org.scaldi”%%“scaldi-play”%“0.5.15”

另外https://github.com/playframework/anorm