如何配置Play框架与PostgreSQL数据库的JDBC连接?

4

这是我的Postgres版本:postgresql/9.4.1

这是我的Play版本:addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.4.6")

这是我的libraryDependencies

libraryDependencies ++= Seq(
  jdbc,
  cache,
  ws,
  specs2 % Test,
  "postgresql" % "postgresql" % "9.1-901-1.jdbc4"

)

将版本更改为9.4-1201-jdbc41会出现sbt.ResolveException:未解决的依赖项:postgresql#postgresql; 9.4-1201-jdbc41:找不到

这是我的application.conf文件

db.default.driver=org.postgresql.Driver
# I tried the following combination
#db.default.url="postgres://user:pass@localhost/20160210_scala_play"

# And

db.default.url="jdbc:postgresql://localhost/20160210_scala_play"
db.default.user="user"
db.default.password="pass"

所有的结果均为:
`Cannot connect to database`

我已经核实了。
psql \list

包含

20160210_scala_play

使用user=user password=password进行身份验证。

有人能指点一下方向吗?


可能是与设置Play 2.4.0与Postgres和HikariCP的配置错误相似的问题。 - marcospereira
2个回答

7

默认情况下,PostgreSQL会监听端口5432。因此,除非您确定您的PostgreSQL实例正在运行端口80,否则请将JDBC URL更改为:

jdbc:postgresql://localhost:5432/20160210_scala_play

同时,这个依赖项已经被解决:

"org.postgresql" % "postgresql" % "9.4-1206-jdbc42"

我使用“9.4-1206-jdbc42”时遇到了这个错误:(*:update) sbt.ResolveException: unresolved dependency: postgresql#postgresql;9.4-1206-jdbc42: not found - Kevin
保留原来的驱动程序,尝试连接到5432端口。 - Ali Dehghani
2
看起来你在依赖项的groupId中漏掉了一个"org"。关于这个驱动程序版本的更多信息,请参见:http://mvnrepository.com/artifact/org.postgresql/postgresql/9.4-1206-jdbc42 - marcospereira

0

尝试

db.default.hikaricp.dataSourceClassName=org.postgresql.ds.PGSimpleDataSource
db.default.hikaricp.dataSource.user=user
db.default.hikaricp.dataSource.password=pass
db.default.hikaricp.dataSource.databaseName=20160210_scala_play
db.default.hikaricp.dataSource.serverName=localhost

并使用这个驱动程序:

"org.postgresql" % "postgresql" % "9.4-1206-jdbc41"

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接