使用 PostgreSQL 播放框架 scala 出现异常
Play framework scala using PostgreSQL got exception
我有以下代码。我正在使用 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" 不存在]
我认为我的 url 驱动程序没问题。否则我会在早期的代码中出错。请告诉我如何修复它。
我想这是您尝试从以下数据库创建数据库连接的方法:
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)
我有以下代码。我正在使用 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" 不存在]
我认为我的 url 驱动程序没问题。否则我会在早期的代码中出错。请告诉我如何修复它。
我想这是您尝试从以下数据库创建数据库连接的方法:
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)