postgresql - Scala Playframework 与 Postgresql 的连接
问题描述
我尝试将我的 Play 后端与我的 Postgresql 数据库连接,但得到:
play.api.http.HttpErrorHandlerExceptions$$anon$1: Execution exception[[PSQLException: Connection to 127.0.0.1:5432 refused. Check that the hostname and port are correct and that the postmaster is accepting TCP/IP connections.]]
数据库在端口 5432 上运行(已检查)
我正在使用 sbt 和 Play 2.8.2 已经尝试过 127.0.0.1 和 0.0.0.0 而不是 localhost,没关系(如果会很奇怪,但你永远不知道)我也在使用 Docker-Compose 创建数据库。
代码:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
....
val connection= DriverManager.getConnection ("jdbc:postgresql://127.0.0.1:5432/smartmarkt", "postgres", "postgres")
println("Connected to PostgreSQL database!");
var statement = connection.createStatement();
var resultSet = statement.executeQuery("SELECT * FROM Article");
while (resultSet.next()) {
println(resultSet, resultSet.getString("price"));
}
Dockerfile
services:
web:
build: frontend/
ports:
- "80:80"
links:
- api
database:
image: "postgres" # use latest official postgres version
ports:
- "5432:5432"
environment:
- POSTGRES_DB=smartmarkt
- POSTGRES_PASSWORD=postgres
- POSTGRES_USER=postgres
volumes:
- ./init.sql:/docker-entrypoint-initdb.d/init.sql
#- ./postgres-data:/var/lib/postgresql/data # persist data even if container shuts downvolumes:
api:
build: backend/
ports:
- "8080:8080"
links:
- database
depends_on:
- database
我在 build.sbt 中添加 jdbc
libraryDependencies += jdbc
我的/lib dic 中也有postgresql-42.2.13.jar,但老实说,我实际上不知道它是否被使用。
解决方案
jdbc:postgresql://database:5432/smartmarkt
上面的连接字符串将在 docker 网络中工作,容器可以通过它们的主机名访问。
推荐阅读
- vue.js - 如何在 Vuejs 中使用 Class 对象?
- rest - REST API 如何处理不完整的答案
- javascript - For循环以自己的格式转换ISO日期
- mysql - 加入和更新视图 SQL
- css - 如何为没有父类的类设置样式?
- docker - KNative Service 无法从 Docker HUB 下载 Hello World 镜像
- sql - 如何使用数据透视在 Oracle 中将行转换为列
- angular - 内容类型更新破坏了 SQlite 数据库
- javascript - 节点js更新。获取不工作。终端显示数据,浏览器控制台不显示
- c# - EF Core - 值不能为空。(参数“键”)