【问题标题】:Best Practise of Using Connection Pool in Slick 3.0.0 Together with Play FrameworkSlick 3.0.0 与 Play Framework 一起使用连接池的最佳实践
【发布时间】:2015-05-27 10:27:19
【问题描述】:

我遵循了 Slick 3.0.0-RC1 的documentation,使用 Typesafe Config 作为数据库连接配置。这是我的conf:

database = {
  driver = "org.postgresql.Driver"
  url = "jdbc:postgresql://localhost:5432/postgre"
  user = "postgre"
}

我建立了一个文件Locale.scala为:

package models

import slick.driver.PostgresDriver.api._
import scala.concurrent.Future

case class Locale(id: String, name: String)

class Locales(tag: Tag) extends Table[Locale](tag, "LOCALES") {
  def id = column[String]("ID", O.PrimaryKey)
  def name = column[String]("NAME")

  def * = (id, name) <> (Locale.tupled, Locale.unapply)
}

object Locales {
  private val locales = TableQuery[Locales]

  val db = Database.forConfig("database")

  def count: Future[Int] =
    try db.run(locales.length.result)
    finally db.close
}

然后我很困惑,何时何地是使用创建数据库对象的正确时间

val db = Database.forConfig("database")

如果我像这样创建db,数据库对象的数量将与我的模型一样多。那么完成这项工作的最佳做​​法是什么?

【问题讨论】:

    标签: scala playframework-2.0 slick hikaricp


    【解决方案1】:

    您可以创建一个 Object DBLocator 并使用惰性运算符加载它,以便仅按需加载。

    您始终可以调用 DBLocator 类中定义的方法来获取 Session 的实例。

    【讨论】:

      猜你喜欢
      • 2011-07-04
      • 1970-01-01
      • 1970-01-01
      • 2015-12-02
      • 2011-06-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-25
      相关资源
      最近更新 更多