java JDBC postgresql problem z nawiązaniem połączenia, błąd

java JDBC postgresql problem z nawiązaniem połączenia, błąd
OB
  • Rejestracja:prawie 10 lat
  • Ostatnio:ponad 2 lata
  • Postów:50
0

Robię wszystko jak w tutorialach. JDBC zainstalowałem dodając zależność do Mavena:

Kopiuj
     <!-- https://mvnrepository.com/artifact/org.postgresql/postgresql -->
        <dependency>
            <groupId>org.postgresql</groupId>
            <artifactId>postgresql</artifactId>
            <version>42.2.14</version>
        </dependency>

w przypadku sqlite coś takiego wystarczy, i wszystko działa.

Tutaj natomiast wyskakuje błąd:

Connection to localhost:5432 refused. Check that the hostname and port are correct and that the postmaster is accepting TCP/IP connections.

moja funkcja do łączenia z bazą:

Kopiuj
    private Connection connectPostgreSQL()
    {
        Connection conn = null;
        try{
            conn = DriverManager.getConnection (url, user, password);
            System.out.println("Connected to the PostgreSQL server successfully.");

        }catch (SQLException e)
        {
            System.out.println (e.getMessage());
        }

        return conn;
    }

Wszystko skopiowane bezpośrednio z tutorialu.

PI
  • Rejestracja:ponad 9 lat
  • Ostatnio:4 miesiące
  • Postów:2787
0

A faktycznie postawiłeś sobie lokalnie bazę Postgres? Na porcie 5432?

OB
  • Rejestracja:prawie 10 lat
  • Ostatnio:ponad 2 lata
  • Postów:50
1

Nie.

Właśnie się zastanawiałem czy trzeba, czy to się jakoś samo utworzy.

W jednym tutorialu jest napisane:

The following Java code shows how to connect to an existing database. If the database does not exist, then it will be created and finally a database object will be returned.

https://www.tutorialspoint.com/postgresql/postgresql_java.htm

więc myślałem, że nie trzeba.

edytowany 1x, ostatnio: Obersturmbannführer
PI
  • Rejestracja:ponad 9 lat
  • Ostatnio:4 miesiące
  • Postów:2787
0

Hmm czuję się nieźle zkonfudowany :) A zmieniałeś ten plik pg_hba.conf?

AK
  • Rejestracja:prawie 7 lat
  • Ostatnio:około miesiąc
  • Postów:3561
0

Jeśli szukasz mało problemowej bazy, z praktycznie zerową instalacją, to coś embedded. H2 albo Derby

EDIT Postgres jest bdb bazą, ale być może szukasz czegoś innego


Bo C to najlepszy język, każdy uczeń ci to powie
edytowany 1x, ostatnio: AnyKtokolwiek
KamilAdam
  • Rejestracja:ponad 6 lat
  • Ostatnio:około miesiąc
  • Lokalizacja:Silesia/Marki
  • Postów:5505
3
Obersturmbannführer napisał(a):

Właśnie się zastanawiałem czy trzeba, czy to się jakoś samo utworzy.

W jednym tutorialu jest napisane:

The following Java code shows how to connect to an existing database. If the database does not exist, then it will be created and finally a database object will be returned.

https://www.tutorialspoint.com/postgresql/postgresql_java.htm

więc myślałem, że nie trzeba.

I to wychodzi używanie uproszczonego słownictwa. PostgreSQL to nie baza danych tylko RDBMS. Baza danych to dane wewnętrz PostgreSQLa. W tym tutorialu ta baza nazywa się testdb.

BTW linijkę niżej masz informacje że masz mieć zainstalowanego PostgreSQLa


Mama called me disappointment, Papa called me fat
Każdego eksperta można zastąpić backendowcem który ma się douczyć po godzinach. Tak zostałem ekspertem AI, Neo4j i Nest.js . Przez mianowanie
edytowany 2x, ostatnio: KamilAdam
Julian_
  • Rejestracja:około 8 lat
  • Ostatnio:ponad 4 lata
  • Postów:1703
0

A jaka wartosc ma url?

OB
jdbc:postgresql://localhost:5432/myDB
Julian_
  • Rejestracja:około 8 lat
  • Ostatnio:ponad 4 lata
  • Postów:1703
0

Sprobuj tak:

Kopiuj
connStr=jdbc:postgresql://localhost:5432/mydatabase?user=mylogin&password=mypassword
val conn = DriverManager.get(connStr)

i sprawdz se:

Kopiuj
SELECT *
FROM pg_settings
WHERE name = 'port';
edytowany 2x, ostatnio: Julian_
UglyMan
Chyba nie pomoże jak nie ma bazy.
OB
  • Rejestracja:prawie 10 lat
  • Ostatnio:ponad 2 lata
  • Postów:50
0

Wszystko działa, wystarczyło zainstalować postgresql z oficjalnej strony, uruchomić sql shell i skonfigurować bazę

title

nie trzeba było nawet konfigurować żadnego pliku.

Julian_
czyli nie miałeś zainstalowanego postgresa i próbowałeś się do niego dobrać? :D
nowyworek
@Julian_: właśnie dlatego zawsze polecam komuś jakieś Derby czy H2 ^^
OB
A Derby albo H2 lepsze niż sqlite? Bo do sqlite też nie trzeba niczego instalować, wystarczy dodać jedno dependency do mavena wszystko działa.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.