ScalaQuery需要(據我所知)在你的代碼中使用的供應商特定的進口,例如:不同的開發/生產數據庫中scalaquery
import org.scalaquery.ql.extended.H2Driver.Implicit._
我們正試圖在生產中使用H2在發展模式和MySQL。有沒有辦法做到這一點?
ScalaQuery需要(據我所知)在你的代碼中使用的供應商特定的進口,例如:不同的開發/生產數據庫中scalaquery
import org.scalaquery.ql.extended.H2Driver.Implicit._
我們正試圖在生產中使用H2在發展模式和MySQL。有沒有辦法做到這一點?
我使用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工作的字符串。
我的做法是:
class Subscribers(database: Database)(profile: ExtendedProfile) {
import profile.Implicit._
}
凡認購基本上是我的數據存取對象。 不知道這是最好的方法。它解決了我的問題。
您可以創建這樣的DAO,如:
...在生產代碼:
new Subscribers(database)(MySQLDriver)
...和測試代碼:
new Subscribers(database)(H2Driver)