Java: 连接到 psql 数据库抛出错误 (ClassNotFoundException)
Java: connecting to psql database throws an error (ClassNotFoundException)
我是 Java 的新手,我尝试连接到我的本地 PSql 数据库但没有成功,下面是代码和错误的详细信息。
我有 2 个文件:DbContract.java 和 TestConnection.java,我正在使用 Eclipse。
DbContract.java
package dbcontract.db;
public interface DbContract {
public static final String HOST = "jdbc:postgresql://localhost:5432/";
public static final String DB_NAME = "db_notespesa";
public static final String USERNAME = "postgres";
public static final String PASSWORD = "";
}
TestConnection.java
package dbcontract;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import dbcontract.db.DbContract;
public class TestConnection {
public static void main(String[] args) {
try {
Class.forName("org.postgresql.Driver");
Connection conn = DriverManager.getConnection(
DbContract.HOST+DbContract.DB_NAME,
DbContract.USERNAME,
DbContract.PASSWORD);
System.out.println("DB connected");
} catch (ClassNotFoundException | SQLException e) {
e.printStackTrace();
}
}
}
错误:
java.lang.ClassNotFoundException: org.postgresql.Driver
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:583)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Class.java:315)
at TestConnection.main(TestConnection.java:13)
您需要按照错误说明添加 Postgress 驱动程序的依赖项,如果您使用的是 Maven,只需将其添加到 pom.xml :
<`<!-- https://mvnrepository.com/artifact/org.postgresql/postgresql -->
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>42.2.5</version>
</dependency>
更新了评论中提到的 Mark 版本,这里是 maven repo 上所有版本的link:
https://mvnrepository.com/artifact/org.postgresql/postgresql
我是 Java 的新手,我尝试连接到我的本地 PSql 数据库但没有成功,下面是代码和错误的详细信息。
我有 2 个文件:DbContract.java 和 TestConnection.java,我正在使用 Eclipse。
DbContract.java
package dbcontract.db;
public interface DbContract {
public static final String HOST = "jdbc:postgresql://localhost:5432/";
public static final String DB_NAME = "db_notespesa";
public static final String USERNAME = "postgres";
public static final String PASSWORD = "";
}
TestConnection.java
package dbcontract;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import dbcontract.db.DbContract;
public class TestConnection {
public static void main(String[] args) {
try {
Class.forName("org.postgresql.Driver");
Connection conn = DriverManager.getConnection(
DbContract.HOST+DbContract.DB_NAME,
DbContract.USERNAME,
DbContract.PASSWORD);
System.out.println("DB connected");
} catch (ClassNotFoundException | SQLException e) {
e.printStackTrace();
}
}
}
错误:
java.lang.ClassNotFoundException: org.postgresql.Driver
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:583)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Class.java:315)
at TestConnection.main(TestConnection.java:13)
您需要按照错误说明添加 Postgress 驱动程序的依赖项,如果您使用的是 Maven,只需将其添加到 pom.xml :
<`<!-- https://mvnrepository.com/artifact/org.postgresql/postgresql -->
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>42.2.5</version>
</dependency>
更新了评论中提到的 Mark 版本,这里是 maven repo 上所有版本的link: https://mvnrepository.com/artifact/org.postgresql/postgresql