ScalaQuery 要求 (AFAIK) 在您的代码中使用提供程序特定的导入,例如:
import org.scalaquery.ql.extended.H2Driver.Implicit._
我们正在尝试在开发模式中使用 H2,在生产中使用 MySQL。有没有办法做到这一点?
ScalaQuery 要求 (AFAIK) 在您的代码中使用提供程序特定的导入,例如:
import org.scalaquery.ql.extended.H2Driver.Implicit._
我们正在尝试在开发模式中使用 H2,在生产中使用 MySQL。有没有办法做到这一点?
我的方法是:
class Subscribers(database: Database)(profile: ExtendedProfile) {
import profile.Implicit._
}
订阅者基本上是我的数据访问对象。不确定这是最好的方法。它解决了我的情况。
您将创建这样的 DAO,例如:
...在生产代码中:
new Subscribers(database)(MySQLDriver)
...在测试代码中:
new Subscribers(database)(H2Driver)
我在 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 工作的字符串。