簡體   English   中英

java.sql.SQLException:找不到適合jdbc的驅動程序

[英]java.sql.SQLException: No suitable driver found for jdbc

我試圖使用JDBC運行一些查詢,並不斷收到此錯誤:

Exception in thread "main" java.lang.IllegalStateException: error
        at com.mycompany.app.App.writer(App.java:195)
        at com.mycompany.app.App.main(App.java:19)
Caused by: java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost:3306/dbname

這是我的代碼的相關部分:

public class App {
           writer();
}

public static void writer() {
        String url = "jdbc:mysql://localhost:3306/dbname
        String username = "root";
        String password = "password";
        try (Connection connection = DriverManager.getConnection(url, username, password)) {
            Statement st = connection.createStatement();
            ResultSet r= st.executeQuery("insert query here");
        } catch (SQLException e) {
            throw new IllegalStateException("error");
        }

    }
}

當我通過Intellij Idea運行它時,它可以工作,但是我需要它在運行Centos的服務器上運行。
我嘗試使用以下命令運行它:

 javac -cp "filepath/mysql-connector-java-5.1.35-bin.jar" App.java  
 java -cp ".filepath/mysql-connector-java-5.1.35-bin.jar" App

我嘗試使用maven運行它,包括

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

在pom.xml中,仍然出現相同的錯誤

我在網上瀏覽了許多文章(以及有關堆棧的問題),但仍然找不到解決方案。

服務器正在運行CentoOS 6.6,數據庫正在本地運行。

我在用:

Java版本“ 1.8.0_45” Java™SE運行時環境(內部版本1.8.0_45-b14)Java HotSpot(TM)64位服務器VM(內部版本25.45-b02,混合模式)

在類Unix操作系統中的類路徑條目必須分開: 在之間添加一個: . (指示當前目錄)和jar的路徑:

java -cp .:filepath/mysql-connector-java-5.1.35-bin.jar App

或者,您可以將mysql-connector-java-5.1.35-bin.jar放在以下目錄中-

JAVA_HOME/jre/lib/ext 

如果將jar放在此目錄中,則不必使用命令將其添加到classpath

您可以嘗試使用class.forName("qualified name of driver class")加載驅動class.forName("qualified name of driver class") 如果您沒有遇到Maven的類路徑問題,這應該可以解決該問題。 看一看這個地方從POM移除索引標記和它的工作。

暫無
暫無

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

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