如何使用 Postgresql 设置 Play Slick

Posted

技术标签:

【中文标题】如何使用 Postgresql 设置 Play Slick【英文标题】:How to setup Play Slick with Postgresql 【发布时间】:2018-02-05 18:14:05 【问题描述】:

我第一次尝试设置 Play 项目,但我已经卡住了! 事实上,当我运行应用程序时,只要我尝试调用“http://localhost:9000/”就会得到这个异常:

java.sql.SQLTransientConnectionException: db - Connection is not available, request timed out after 1004ms

我也每 2 秒在日志中看到一次:

[error] c.z.h.p.PoolBase - db - Failed to execute isValid() for connection, configure connection test query. (Method org.postgresql.jdbc4.Jdbc4Connection.isValid(int) is not yet implemented.)

这就是我所做的:

代码方面我刚刚创建了一个类 DAO 来添加、删除和列出用户表的记录,并从控制器调用“add”方法。

我希望我提供了足够的细节

【问题讨论】:

这听起来像是连接泄漏!您能否向我们展示您如何使用 DB Connection 对象进行数据库调用? 感谢您的回答。我添加了调用数据库的部分 您是否尝试记录来自 Slick 的呼叫? logger.scala.slick=调试 我现在尝试了,但没有任何改变,因为我注意到异常在一切之前被触发,甚至在控制器被调用之前 你能避免使用 play-slick 库吗?看看我的回答! 【参考方案1】:

我找到了使用 Play Slick 库的最终解决方案,配置方式如下:

您可以从this page 的表格中查看 PlaySlick 库中使用的 Slick 和 Play 版本

【讨论】:

Grazie tantissimo!!!这确实有助于配置 play slick postgres 连接。【参考方案2】:

我会尽量避免使用 Play-Slick 库,而是直接使用 Slick 库!有关如何做到这一点的一些示例,请查看我的其中一个项目:

https://github.com/joesan/plant-simulator/tree/master/app/com/inland24/plantsim/services/database

在那里,我直接使用 Slick 作为我项目的依赖项,而我没有使用 play-slick 依赖项。

【讨论】:

以上是关于如何使用 Postgresql 设置 Play Slick的主要内容,如果未能解决你的问题,请参考以下文章

Play、Anorm 和 PostgreSQL:串行列的问题?

Play + JPA + Hibernate + PostgreSQL:无法创建表

使用 play framework v1.5 连接 db postgresql 时出错

Java Play 中的配置 - ebean 和 postgresql

使用 Play Slick 在 PostgreSQL 中持久化 UUID - java.sql.BatchUpdateException

如何在 Play Framework v2 中指定自定义数据库连接参数以进行测试?