簡體   English   中英

PostgreSQL JDBC:致命:數據庫不存在

[英]postgresql jdbc: FATAL: database does not exist

我正在嘗試使用以下代碼連接到數據庫:

import java.sql.SQLException;
import java.sql.DriverManager;
import java.sql.Connection;
import java.sql.Statement;
import java.sql.ResultSet;

public class Model {

        Connection connection;

        Model() {

                try {
                        connection = DriverManager.getConnection("jdbc:postgresql:localhost:5432/deliverp", "kais", "0000");
                }
                catch (SQLException e) {
                        e.printStackTrace();
                }
        }

        static {

                try {
                        Class.forName("org.postgresql.Driver");
                }
                catch (ClassNotFoundException e) {
                        e.printStackTrace();
                }
        }

        public boolean addClient(Object data[]) {

                return true;
        }
}

但是在運行Java程序后,我收到以下堆棧跟蹤:

Nov 17, 2017 8:58:24 AM org.postgresql.Driver connect
SEVERE: Connection error: 
org.postgresql.util.PSQLException: FATAL: database "localhost:5432/deliverp" does not exist
        at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2477)
        at org.postgresql.core.v3.QueryExecutorImpl.readStartupMessages(QueryExecutorImpl.java:2603)
        at org.postgresql.core.v3.QueryExecutorImpl.<init>(QueryExecutorImpl.java:125)
        at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:227)
        at org.postgresql.core.ConnectionFactory.openConnection(ConnectionFactory.java:49)
        at org.postgresql.jdbc.PgConnection.<init>(PgConnection.java:194)
        at org.postgresql.Driver.makeConnection(Driver.java:450)
        at org.postgresql.Driver.connect(Driver.java:252)
        at java.sql.DriverManager.getConnection(DriverManager.java:664)
        at java.sql.DriverManager.getConnection(DriverManager.java:247)
        at Model.<init>(Model.java:16)
        at DelivERP.<init>(DelivERP.java:42)
        at DelivERP.main(DelivERP.java:104)

org.postgresql.util.PSQLException: FATAL: database "localhost:5432/deliverp" does not exist
        at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2477)
        at org.postgresql.core.v3.QueryExecutorImpl.readStartupMessages(QueryExecutorImpl.java:2603)
        at org.postgresql.core.v3.QueryExecutorImpl.<init>(QueryExecutorImpl.java:125)
        at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:227)
        at org.postgresql.core.ConnectionFactory.openConnection(ConnectionFactory.java:49)
        at org.postgresql.jdbc.PgConnection.<init>(PgConnection.java:194)
        at org.postgresql.Driver.makeConnection(Driver.java:450)
        at org.postgresql.Driver.connect(Driver.java:252)
        at java.sql.DriverManager.getConnection(DriverManager.java:664)
        at java.sql.DriverManager.getConnection(DriverManager.java:247)
        at Model.<init>(Model.java:16)
        at DelivERP.<init>(DelivERP.java:42)
        at DelivERP.main(DelivERP.java:104)

因此,我想通過運行以下測試來確保數據庫存在:

kais@debian:~/Documents/DelivERP$ psql deliverp
psql (9.6.4)
Type "help" for help.

deliverp=> \d
             List of relations
 Schema |      Name      | Type  |  Owner   
--------+----------------+-------+----------
 public | BusinessEntity | table | postgres
 public | Client         | table | postgres
 public | Company        | table | postgres
 public | Order          | table | postgres
 public | Product        | table | postgres
(5 rows)

deliverp=> 

對我來說,聽起來很奇怪,盡管服務器沒有找到數據庫,但它仍然存在..

有什么想法嗎?

你可以試試:

connection = DriverManager.getConnection("jdbc:postgresql://localhost:5432/deliverp", "kais", "0000");

要么

connection = DriverManager.getConnection("jdbc:postgresql:deliverp", "kais", "0000");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM