2012-11-17 88 views
2

ScalaQuery需要(據我所知)在你的代碼中使用的供應商特定的進口,例如:不同的開發/生產數據庫中scalaquery

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

我們正試圖在生產中使用H2在發展模式和MySQL。有沒有辦法做到這一點?

回答

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工作的字符串。

2

我的做法是:

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

凡認購基本上是我的數據存取對象。 不知道這是最好的方法。它解決了我的問題。

您可以創建這樣的DAO,如:

...在生產代碼:

new Subscribers(database)(MySQLDriver) 

...和測試代碼:

new Subscribers(database)(H2Driver) 
相關問題