database - 我如何在播放框架中使用默认数据库以外的其他数据库?

标签 database scala playframework-2.3

直到我在我的应用程序中只使用一个数据库。所以对于任何 sql 查询,我只是使用默认数据库。下面给出了有关数据库的信息。

db.default.driver=org.postgresql.Driver
db.default.url="postgres://user:password@localhost:5439/database_name"

这些信息保存在 appliction.conf 文件中。在下面的代码中,DB 是默认数据库。

DB.withConnection {
  conn =>
    {
      val statement = conn.createStatement(ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY)
      try {
        statement.execute(sql)
      }
      catch {
        case e: Exception => Logger.debug("There is some error with the database")
      }
    }
}

但我需要使用另一个数据库。下面给出了有关数据库的信息。

db.um.driver=com.mysql.jdbc.Driver
db.um.url="mysql://user:password@localhost:3306/database_name"

这些信息也保存在 application.conf 文件中。现在我该如何访问该数据库并运行 sql 命令。

最佳答案

顾名思义,名为default 的数据源用作所有连接的默认值。你可以看到 withConnection()方法采用带有数据源名称的参数,但如果未传递任何内容,则使用“默认”代替。

要使用额外的数据源,您必须将其指定为 withConnection() 方法的参数。

DB.withConnection("um") { conn =>
  // implement your action
}

关于database - 我如何在播放框架中使用默认数据库以外的其他数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29799008/

相关文章:

python - 尝试在 python 中上传到 MySQL 数据库时出现完整性错误

java - 连接到 HSQLDB

Scala - 将代码拆分为特征、类、对象时的设计选择

scala - 从 Scala 中的 Future Options 获取 Future 对象

scala - 编译 Play 应用程序时出现的问题

sql - 从表 "A"中删除行,其中 "1"中的列 "A"值与表 "1"中的列 "B"值匹配,但 "2"中的列 "A"值在 "B"中不存在

database - 表单信息到另一台服务器上的数据库

scala - 带有 io.circe.Decoder 的奇怪 NPE

scala - 如何更新 mutable.Map 中的当前值?

java - Play 2.3.x 可以在没有 Activator(和 Maven)的情况下使用吗?