java - org.postgres.Driver 类异常 - 初学者

标签 java sql postgresql connection

感谢您的帮助,我在这里完全是个菜鸟,但正在努力学习。 下面的代码只是尝试创建与数据库的连接。我收到此错误:

java.lang.ClassNotFoundException: org.postgres.Driver
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Unknown Source)
    at CreateDB.main(CreateDB.java:11)
java.lang.ClassNotFoundException: org.postgres.Driver

在网上研究后,我遇到的解决方案是检查库是否已添加到构建路径。我可以确认我有(我认为)。为此,我右键单击项目 -> 属性 -> Java 构建路径 -> 外部 JARS 并导航到位于“...\eclipse-workspace\libraries\”中的 postgresql - 42.41.4..jar 我可以看到该库已添加到项目中引用的库下。 现在我被困住了,没有任何线索。真诚感谢任何帮助。

我从这里学习https://www.tutorialspoint.com/postgresql/postgresql_java.htm

import java.sql.Connection;
import java.sql.DriverManager;

public class CreateDB {
    public static void main(String Args[]) {
        Connection c = null;
        try {
            Class.forName("org.postgres.Driver");
            c = DriverManager.getConnection("jdbc.postgresql://localhost:1080/VEM", "postgres", "Diablo12" ); //creates connection with U&P
        } catch (Exception e) {
            e.printStackTrace();
            System.err.println(e.getClass().getName() +": " + e.getMessage());
            System.exit(0);
        }
        System.out.println("Database opened successfully");
    }
}

最佳答案

正确的驱动程序名称是:org.postgresql.Driver。所以你的代码应该是这样的:

import java.sql.Connection;
import java.sql.DriverManager;

public class CreateDB {
    public static void main(String args[]) {
        Connection c = null;
        try {
            Class.forName("org.postgresql.Driver");
            c = DriverManager.getConnection("jdbc.postgresql://localhost:1080/VEM", "postgres", "Diablo12" ); //creates connection with U&P
        } catch (Exception e) {
            e.printStackTrace();
            System.err.println(e.getClass().getName() +": " + e.getMessage());
            System.exit(0);
        }
        System.out.println("Database opened successfully");
   }
}

错误的驱动程序名称会导致 java 抛出 ClassNotFoundException,因为在类路径中找不到具有传递名称的类。 从 Java 6 开始,不再需要通过 Class.forName() 加载驱动程序,例如 a_horse_with_no_name在他的评论中指出。

关于java - org.postgres.Driver 类异常 - 初学者,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45857454/

相关文章:

sql - plpgsql EXECUTE 语句中的嵌套引号

java - EmptyByteBuf出现在Netty服务器的Decoder链中

mysql - 如何根据其他记录的值更新字段

javascript - 从 HTML 表到 mysql 数据库

sql - 这个 SQL 有效吗?

c# - Entity Framework 核心 1.0 PostgreSQL API

PostgreSQL-jsonb_each

java - Spring Boot 安全性 - 两个不同的过滤器

c# - 我们可以在 Linux 机器上读取在 .NET 中序列化的对象吗?

java - 如何告诉 IntelliJ 在 OSX 上使用 brew 安装的 groovy