【问题标题】:java.sql.SQLException: No suitable driver found for jdbcjava.sql.SQLException:找不到适合 jdbc 的驱动程序
【发布时间】:2015-06-26 22:53:10
【问题描述】:

我正在尝试使用 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(TM) SE 运行时环境 (build 1.8.0_45-b14) Java HotSpot(TM) 64 位服务器 VM(内部版本 25.45-b02,混合模式)

【问题讨论】:

  • 您使用的是什么版本的 Java?
  • 我已将其添加到主帖

标签: java mysql maven jdbc centos


【解决方案1】:

类 Unix 操作系统上的类路径上的条目必须用 : 分隔。在.(表示当前目录)和jar的路径之间添加:

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

【讨论】:

  • @RichSala 你确定 JDBC 驱动的 jar 路径正确吗?
  • 显然不是大声笑。谢谢,它工作!我真的需要它在 maven 中工作,但我可能会弄清楚。
【解决方案2】:

或者,您可以将mysql-connector-java-5.1.35-bin.jar 放到以下目录 -

JAVA_HOME/jre/lib/ext 

如果您将jar 放在此目录中,则不必使用命令将其添加到classpath

【讨论】:

  • 这解决了问题,但这就像用火焰喷射器杀死虫子一样。
【解决方案3】:

您可以尝试使用class.forName("qualified name of driver class") 加载驱动程序类。如果您没有遇到 maven 的类路径问题,这应该可以解决问题。看看at this在哪里 index 标签已从 pom 中删除,并且可以正常工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-07-04
    • 2016-11-28
    • 2011-08-02
    • 2012-08-28
    • 2015-07-05
    • 2010-11-25
    • 1970-01-01
    相关资源
    最近更新 更多