我在我的 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
,所以再次输入所有这些设置没有多大意义。