与Postcalsql的Scala Playframework连接

问题描述 投票:0回答:1

我尝试将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并播放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,但是老实说,我实际上不知道它是否被使用。

postgresql scala docker playframework
1个回答
0
投票
jdbc:postgresql://database:5432/smartmarkt

以上连接字符串将在docker网络容器内工作,可通过其主机名访问。

© www.soinside.com 2019 - 2024. All rights reserved.