0

私の Scala/Play DB URL 設定は次のようになります。

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.getTablesDB.withSessionデータベースが選択されていると想定しているため、この場合は機能しないようですが、そうではありません。どうすればこれを機能させることができますか?

4

1 に答える 1

0

複数のデータベースを使用したい場合、Play で複数のデータベースを定義する必要があります。

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 { ... }

等...

于 2013-11-28T02:07:23.397 に答える