[英]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.