ScalaQuery要求(AFAIK)在代码中使用特定于提供程序的导入,例如:
import org.scalaquery.ql.extended.H2Driver.Implicit._我们正在尝试在开发模式中使用H2,在生产模式中使用MySQL。有没有办法做到这一点?
发布于 2012-11-17 11:18:59
我的方法是:
class Subscribers(database: Database)(profile: ExtendedProfile) {
import profile.Implicit._
}其中订阅者基本上是我的数据访问对象。不确定这是不是最好的方法。它解决了我的案子。
您可以像这样创建这样的DAO:
...in生产代码:
new Subscribers(database)(MySQLDriver)测试代码中的...and:
new Subscribers(database)(H2Driver)发布于 2012-11-17 10:46:18
我在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工作的字符串。
https://stackoverflow.com/questions/13427132
复制相似问题