使用PostgreSQL播放框架scala有异常

时间:2015-03-02 12:14:00

标签: postgresql scala playframework-2.1

我有以下代码。我使用的是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"不存在]

我认为我的网址,驱动程序还可以。否则我会在早期代码中出错。请告诉我如何解决它。

1 个答案:

答案 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)