【问题标题】:PlayFramework Scala: How to get default Hikaricp connectionPlayFramework Scala:如何获得默认的 Hikaricp 连接
【发布时间】:2019-01-23 13:20:13
【问题描述】:

我正在尝试从默认的Hikaricp 配置获取连接。以下是application.conf

modules {
  enabled += "play.api.db.DBModule"
  enabled += "play.api.db.HikariCPModule"
  enabled += "modules.AppModule"
}
db.default.hikaricp.dataSourceClassName=org.postgresql.ds.PGSimpleDataSource
db.default.hikaricp.dataSource.user=rp
#db.default.hikaricp.dataSource.url="postgres://rp:password@localhost/profile"
db.default.hikaricp.dataSource.password=password
db.default.hikaricp.dataSource.databaseName=profile
db.default.hikaricp.dataSource.serverName=localhost
db.default.hikaricp.connectionTestQuery = "SELECT 1"

由于Play 正在维护连接池。现在我无法找到在Play 上方创建连接的方法。我尝试了以下(1、2、3):

//1. Injecting
import slick.jdbc.PostgresProfile.api._

class DBConnection @Inject()(db: Database) {

}
 // 2. Mentioned here.

object DBConnection {
implicit val db = DatabaseConfigProvider.get[JdbcProfile](Play.current).db
//implicit val db = Database.forConfig("default") (3)
}

如何从default 连接池获取连接?

其他细节: 播放框架版本:2.16.9
Scala 版本是2.12.6
Postgres 依赖org.postgresql" % "postgresql" % "9.4-1206-jdbc42。 在此处添加logs 以进行所有三个尝试。

【问题讨论】:

    标签: postgresql scala playframework slick-3.0


    【解决方案1】:

    你可以使用play.api.db.DBApi,比如:

    class DatabaseService @Inject()(dbApi: DBApi)
                                   (implicit ec: DatabaseExecutionContext) {
       lazy val database = dbApi.database("default")
       ...
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-12-16
      • 1970-01-01
      • 1970-01-01
      • 2021-03-23
      • 1970-01-01
      • 1970-01-01
      • 2014-09-10
      • 2020-10-17
      相关资源
      最近更新 更多