使用Play框架的Postgresql

Tod*_*odd 9 playframework playframework-1.x

我试图使用Postgresql与Play的Yabe教程并得到此错误:

无法连接数据库,找不到驱动程序(org.postgresql.Driver)

这是我的连接字符串:

# If you need a full JDBC configuration use the following :
 db.url=jdbc:postgresql:yabe
 db.driver=org.postgresql.Driver  
 db.user=yabe
 db.pass=yabe
#
# Connections pool configuration :
 db.pool.timeout=1000
 db.pool.maxSize=30
 db.pool.minSize=1
Run Code Online (Sandbox Code Playgroud)

在我的lib文件夹中,我有这个:postgresql-9.1-901.jdbc3.jar

我尝试将驱动程序名称更改为相同的名称是tha jar但仍然得到相同的错误.有任何想法吗?

Ant*_*per 41

如果您使用的是Play 2.0,则其工作方式略有不同.网址实际上是这样的:

db.default.driver=org.postgresql.Driver
db.default.url="postgres://user:password@servername/dataBaseName"
Run Code Online (Sandbox Code Playgroud)

但是,除非您在build.scala或build.java中将以下行添加到依赖项部分,否则这也会出错:

"postgresql" % "postgresql" % "9.1-901.jdbc4"
Run Code Online (Sandbox Code Playgroud)


ree*_*een 13

如果您需要SSL支持:

db=postgres://user:password@server.example.net:5432/dbname?ssl=true&sslfactory=org.postgresql.ssl.NonValidatingFactory
Run Code Online (Sandbox Code Playgroud)


Per*_*ega 10

Play框架已经包含了Postgres的驱动程序.请执行下列操作:

  • 从dependencies.yml文件中删除对postgreSQL驱动程序的任何引用
  • 做一个"玩deps --sync"
  • 删除与postgreSQL驱动程序相关的lib /文件夹中的任何jar
  • 将您的连接字符串更改为:

    分贝= postgres的://用户:PWD @本地:5432 /矢部

这应该解决你的冲突.

  • 对于Play 2来说,这都不是真的 (7认同)

小智 6

您无需编辑完整的JDBC配置.我在本地使用postgesql,我只是在conf文件夹的application.conf文件中添加这行:

# To connect to a local PostgreSQL9 database, use:
db=postgres://userName:yourPassword@localhost:5432/nameOfYourDB
Run Code Online (Sandbox Code Playgroud)

如果您在本地,userName通常是postgres,除非您更改它.