簡體   English   中英

JDBC驅動程序-ClassNotFoundException,NetBeans

[英]JDBC driver - ClassNotFoundException, NetBeans

我進行了大量搜索,並花了很多時間嘗試注冊JDBC驅動程序。

首先,我將我的ojdbc7.jar文件(從Oracle下載)復制到如下所示的目錄中:

Driver File(s): /Users/Kamil/glassfish4/jdk7/jre/lib/ext/ojdbc7.jar
Driver Class: oracle.jdbc.OracleDriver
// this is copied from Services/Databases/Drivers/ojdbc

然后,我嘗試了以下代碼:

try {
    Driver myDriver = new oracle.jdbc.driver.OracleDriver();
    DriverManager.registerDriver(myDriver);
} catch (ClassNotFoundException ex) {
    System.out.println("Error: unable to load driver class!");
    System.exit(1);
}

... 還有這個:

try {
    Class.forName("oracle.jdbc.OracleDriver");
} catch (ClassNotFoundException ex) {
    System.out.println("Error: unable to load driver class!");
    System.exit(1);
}

...並以這行代替:

Class.forName("oracle.jdbc.driver.OracleDriver");

我總是得到ClassNotFoundException :(

這是我嘗試運行的代碼:

Connection DBconn;
String USER = "root";
String PASS = "root";
System.out.println("Connecting to database...");

DBconn = DriverManager.getConnection("mysql://localhost:3306/RestToolDatabase", USER, PASS);

System.out.println("Creating statement...");
Statement stmt = DBconn.createStatement();
String sql;
sql = "select surname, id, age\n"
        + "from customers \n"
        + "where name = \"maria\" \n"
        + "order by id;";
ResultSet rs = stmt.executeQuery(sql);

我還閱讀了有關按如下所述設置類路徑的信息

  • 用鼠標右鍵單擊您的項目。
  • 選擇屬性。
  • 在左側,單擊庫。
  • 在“編譯”選項卡下-單擊“添加Jar /文件夾”按鈕。

    但是NetBeans中沒有“屬性/庫”選項。

我使用Maven,並且某些庫添加了以下依賴項:

<dependency>
    <groupId>ojdbc</groupId>
    <artifactId>ojdbc</artifactId>
    <version>14</version>
    <type>pom</type>
</dependency>

也許有一些解決方法,或者其他自動添加方法? 它應該很簡單,但是我沒有經驗,在此上浪費了很多時間。 請幫忙。

編輯 :謝謝您的答復,是的,我在localhost:3306 [root]使用MySQL Server。 我在這里安裝了MySQL JDBC連接器:

/Applications/NetBeans/NetBeans 8.0.app/Contents/Resources/NetBeans/ide/modules/ext/mysql-connector-java-5.1.23-bin.jar

當我轉到“服務”->“驅動程序”->“ MySQL(連接器/ J驅動程序)”時,完全有您建議的驅動程序類路徑,因此我使用Class.forName(“ com.mysql.jdbc.Driver ”)。 我右鍵單擊“ MySQL(連接器/ J驅動程序)”驅動程序,然后轉到“連接使用...”->“本地主機,端口3306,用戶,密碼”。 現在已連接,我看到了新的連接。 但是我仍然得到ClassNotFoundException。

編輯2-此解決方案為我工作:

我在pom.xml中的依賴項中添加了以下內容:

    </dependency>
        <dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.1.23</version>
</dependency>

...並構建應用程序; 驅動程序已下載並安裝。 就這么簡單...我花了很多時間在它上...有效-是的! :)

您在MySQL數據庫上使用Oracle JDBC驅動程序時,應使用

    Class.forName("com.mysql.jdbc.Driver");

編輯:感謝@duffymo和@ Mark-Rotteveel的評論,他們注意到連接的URL也是錯誤的,正確的連接是:

    Connection DBconn;
    String USER = "root";
    String PASS = "root";
    DBconn = DriverManager.getConnection("jdbc:mysql://localhost:3306/RestToolDatabase?" + "user="+USER+"&password="+PASS);

設置類路徑:

  1. 下載JAR JDBC連接器/驅動器
  2. 將文件復制到項目的子文件夾中(例如:libs)(不是“ src”)
  3. 項目->屬性->庫->添加Jar /文件夾->選擇文件

在'dist'中打包具有相對路徑的依賴庫:

  1. 項目->構建->包裝->檢查“復制依賴庫”

我認為JDBC JAR不屬於該目錄。 CNF異常支持我。

我建議將該JAR放到您的項目WEB-INF / lib中,重新打包WAR,然后重試。

這行是正確的:

Class.forName("oracle.jdbc.driver.OracleDriver");

完整的類名必須與JAR中的類名匹配。 這是唯一的方法。

您必須使用與數據庫匹配的驅動程序:Oracle for Oracle,MySQL for MySQL。 您正在使用什么數據庫?

</dependency>
    <dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.23</version>

這對我有用。 由於Netbeans apache中沒有屬性和庫。 祝好運。

暫無
暫無

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

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