【问题标题】:Play framework scala using PostgreSQL got exception使用 PostgreSQL 播放框架 scala 出现异常
【发布时间】:2015-03-02 12:13:59
【问题描述】:

我有以下代码。我正在使用 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: FATAL: 角色“org.postgresql.Driver”不存在]

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

【问题讨论】:

  • 您使用数据库用户“org.postgresql.Driver”.... 看起来您的数据库连接配置有问题。

标签: postgresql scala playframework-2.1


【解决方案1】:

我猜这是您尝试从中创建数据库连接的数据库方法:

def forURL(url:String, user:String = null, password:String = null, prop: Properties = null, driver:String = null): DatabaseDef

如您所见,它接受 url 作为第一个参数,但第二个是用户(在 postgresql 中也称为角色)并且您正在插入数据库驱动程序。它接受具有默认值(null)的其余参数。您需要像这样提供其余部分:

val db = Database.forURL(dburl.get, <add username>, <add password>, new Properties, driver.get)

【讨论】:

猜你喜欢
  • 2014-07-29
  • 1970-01-01
  • 1970-01-01
  • 2021-08-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-03
相关资源
最近更新 更多