2013-11-27 95 views
0

我的斯卡拉/播放DB URL的配置是這樣的:油滑Mtable.getTables選擇數據庫名稱

db.default.url="jdbc:mysql://localhost" 

我不(不能)選擇數據庫,因爲我使用了多個數據庫。

我有一個從數據庫表中的映射列名和值對的形式檢索數據的方法:

def getSession(id: String, db: String): Map[String, Any] = DB.withSession { 

    val columns = MTable.getTables(None, None, None, None).list.filter(_.name.name == "myTable").head.getColumns.list.map(_.column) 
    val result = sql"""SELECT * FROM #$db.myTable WHERE id=$id""".as[List[Any]].firstOption.map(columns zip _ toMap).get 

} 

MTable.getTables似乎並不在此之際工作,因爲我認爲它預計DB.withSession選擇一個數據庫,情況並非如此。我如何完成這項工作?

回答

0

你,如果你要使用多個數據庫,如定義在播放多個數據庫:

db.database1.url="jdbc:mysql://localhost/database1" 
db.database2.url="jdbc:mysql://localhost/database2" 
db.database3.url="jdbc:mysql://localhost/database3" 

然後,你必須運行的每個不同的數據庫上查詢,合併結果,如:

DB("database1").withSession { ... } ++ DB("database2").withSession { ... } 

等等