我正在使用Playframework编写一个scala应用程序。我不想在 application.conf 文件中编写数据库配置。相反,我有一个类似于下面给出的函数。我想将配置参数作为函数的参数发送。然后我想创建一个连接并执行该语句。顺便说一句,该数据库是一个 mysql 数据库。
def run_sql(sql: String, host: String, user: String, pass: String, port: String, dbname: String): Unit = {
// **** create the connection ****
DB.withConnection {
conn =>
{
val statement = conn.createStatement(ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY)
try {
statement.execute(sql)
}
catch {
case e: Exception => Logger.warn("Error executing DML %s. %s".format(sql, e.getMessage))
}
}
}
}
可能吗?如果是这样,那又如何呢?我希望我已经把我的问题说清楚了。如果您有任何困惑,请询问。提前谢谢。
// **** create the connection ****
在这里我们可以写
val driver = Play.current.configuration.getString("rds.driver").getOrElse("")
val host = Play.current.configuration.getString("rds.host").getOrElse("")
val port = Play.current.configuration.getString("rds.port").getOrElse("")
val user = Play.current.configuration.getString("rds.user").getOrElse("")
val password = Play.current.configuration.getString("rds.password").getOrElse("")
val url = "mysql://" + user + ":" + password + "@" + host + ":" + port + "/" + dbname
// there's probably a better way to do this
Class.forName(driver)
val connection: Connection = DriverManager.getConnection(url, user, password)