我有以下代码。我使用的是Play 2.3.7,Scala 2.11.4,PostgreSQL 9.4.1。
我在代码后执行错误: -
val dburl: Option[String] = current.configuration.getString("db.default.url")
val driver: Option[String] = current.configuration.getString("db.default.driver")
val db = Database.forURL(dburl.get, driver.get)
val session = db.createSession()
def newPlayer(email: String, nickname: String): Int = {
val now : java.sql.Timestamp = new java.sql.Timestamp(compat.Platform.currentTime)
// following line throws exception
db.withSession {implicit session: Session => persons.map(p => (p.nickname, p.email, p.status, p.gender, p.created, p.updated)) += (nickname, email, "active", "n", now, now)}
}
执行例外
[PSQLException:致命:角色" org.postgresql.Driver"不存在]
我认为我的网址,驱动程序还可以。否则我会在早期代码中出错。请告诉我如何解决它。
答案 0 :(得分:2)
我想这是您尝试从以下位置创建数据库连接的数据库上的方法:
def forURL(url:String, user:String = null, password:String = null, prop: Properties = null, driver:String = null): DatabaseDef
如您所见,它接受url作为第一个参数,但第二个是user(在postgresql中也称为role),并且您正在插入数据库驱动程序。它接受带有默认值的其余参数(null)。你需要像这样提供其余的:
val db = Database.forURL(dburl.get, <add username>, <add password>, new Properties, driver.get)