1

我在我的 Scala/Play 项目中使用 Slick。

在配置中,我定义了我的数据库 URL,如下所示:

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

我有一个运行查询的简单方法。我需要它在多个数据库上工作(不能在 conf 中定义),所以我将数据库名称作为参数传递:

def getData(db: String): String = DB.withSession {
    sql"""SELECT myColumn FROM #$db.myTable LIMIT 1""".as[String].firstOption
}

这工作得很好。但我需要将上面的示例转换为:

def getData(db: String): String = DB.withSession {
    sql"""SELECT myColumn FROM myTable LIMIT 1""".as[String].firstOption
}

而不仅仅是DB.withSession我需要以某种方式选择使用 param 传递的数据库名称db。我怎样才能做到这一点?

更新:我知道类似的东西Database.forURL("jdbc:mysql://localhost/dbName")可以工作,但它还需要用户名、密码等,默认连接已经存在DB,所以再次输入所有这些设置没有多大意义。

4

0 回答 0