2

ScalaQuery 要求 (AFAIK) 在您的代码中使用提供程序特定的导入,例如:

import org.scalaquery.ql.extended.H2Driver.Implicit._

我们正在尝试在开发模式中使用 H2,在生产中使用 MySQL。有没有办法做到这一点?

4

2 回答 2

2

我的方法是:

class Subscribers(database: Database)(profile: ExtendedProfile) {
    import profile.Implicit._
}

订阅者基本上是我的数据访问对象。不确定这是最好的方法。它解决了我的情况。

您将创建这样的 DAO,例如:

...在生产代码中:

new Subscribers(database)(MySQLDriver)

...在测试代码中:

new Subscribers(database)(H2Driver)
于 2012-11-17T03:18:59.127 回答
1

我在 playframework 中使用以下内容

object test {
  lazy val extendedProfile = {
    val extendedProfileName = Play.configuration getString "db.default.extendedProfile" get
    companionObjectNamed(extendedProfileName).asInstanceOf[ExtendedProfile]
  }

  def companionObjectNamed(name: String) : AnyRef = {
    val c = Class forName (name + "$")
    c.getField("MODULE$") get c
  }
}

然后导入

import util.extendedProfile.Implicit._

org.scalaquery.ql.extended.MySQLDriver是我在配置中用来使 mysql 工作的字符串。

于 2012-11-17T02:46:18.077 回答