0

我正在编写一个 Java 应用程序,它需要通过 JDBC 将一些数据插入 MySQL 数据库。以下是相关代码:

public JDBCDecoder() {

    try {
        Class.forName("com.mysql.jdbc.Driver");
        System.out.println("Loaded MySQL JDBC driver");
    } catch (ClassNotFoundException e) {
        System.out.println("Exception attempting to load MySQL JDBC driver");
    }

    String url = "jdbc:mysql://localhost/db";

    Properties props = new Properties();
    props.put("user", "root");
    props.put("password", "root");

    try {
        conn = DriverManager.getConnection(url, props);
        conn.setAutoCommit(false);
    } catch (SQLException e) {
        Throwables.propagate(e);
    }
    ....

}

这是我尝试运行代码后得到的错误堆栈跟踪:

java.lang.NoClassDefFoundError: Could not initialize class oracle.jdbc.OracleDriver
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:249)
    at java.sql.DriverManager.getCallerClass(DriverManager.java:477)
    at java.sql.DriverManager.getConnection(DriverManager.java:576)
    at java.sql.DriverManager.getConnection(DriverManager.java:154)
    at exportclient.JDBCExportClient$JDBCDecoder.<init>(JDBCExportClient.java:179)
    at exportclient.JDBCExportClient.constructExportDecoder(JDBCExportClient.java:604)
    at export.processors.GuestProcessor$1.run(GuestProcessor.java:113)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
    at utils.CoreUtils$1$1.run(CoreUtils.java:259)
    at java.lang.Thread.run(Thread.java:680)

这对我来说似乎很奇怪,因为:1)我没有尝试连接到 Oracle 数据库;2)实际上我的类路径中有一个 ojdbc6.jar(其中包含 oracle.jdbc.OracleDriver)。所以我完全不知道为什么会发生这个错误。

任何建议将不胜感激。提前致谢!

4

1 回答 1

0

看看这是否与您的问题有关:“作为其初始化的一部分,DriverManager 类将尝试加载在“jdbc.drivers”系统属性中引用的驱动程序类。

于 2013-07-05T20:45:45.723 回答