如何修复:“找不到适合 jdbc:mysql://localhost/dbname 的驱动程序”错误

Posted

技术标签:

【中文标题】如何修复:“找不到适合 jdbc:mysql://localhost/dbname 的驱动程序”错误【英文标题】:How to fix: “No suitable driver found for jdbc:mysql://localhost/dbname” error 【发布时间】:2016-11-02 20:38:54 【问题描述】:

我正在尝试在 java 中创建与我的 musql 的连接。 当我使用 Main 执行此操作时,它没有问题,但是当我使用 apache 时,它​​返回错误:

java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost:3306/database_name..

我阅读了相似的问题,其中none 帮助了我。

我使用 JDK 8 和 JDBC 5。 JDBC 驱动程序位于项目库中,我将其包含在构建路径中 这是我的代码:

 // JDBC driver name and database URL
   static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";  
   static final String DB_URL = "jdbc:mysql://localhost:3306/program1";

   //  Database credentials
   static final String USER = "user";
   static final String PASS = "pass";
   
   private static Connection conn = null;
   
   
   /*
    * Create connection to the DB in singletone
    * */
   protected static Connection getConnection() throws ClassNotFoundException, SQLException
   
           if(conn==null)
           
               try 
               
                   // Register JDBC driver
                  //Class.forName(JDBC_DRIVER);
                   
                   // Open connection
                   conn = DriverManager.getConnection(DB_URL,USER,PASS);
                
               catch ( SQLException e) 
                   // TODO Auto-generated catch block
                   e.printStackTrace();
                   if(conn != null)
                        conn.close();
               
           
       
       return conn;
   

在调试运行“conn = DriverManager.getConnection(DB_URL,USER,PASS);”行的那一刻,我得到了异常。

是什么导致了这个错误?为什么当我从 main 运行它时它可以工作?

【问题讨论】:

典型的类路径 这完全取决于你在做什么。 Servlet 引擎,eclipse,调试,发布,web-inf/lib ... 我使用 servlet 引擎,但在调试中我可以看到 servlet 进行调用,问题出在 DriverManager.getConnection 并且类路径变量是“C:\Program Files\Java\jdk1.8.0_40\jre\lib” 您是否尝试过已弃用的 Class.forName ?还要特别指定 servlet 引擎类型,并显示它的 lib 信息(换句话说,从 dubiosity 缩小范围) 【参考方案1】:

你需要下载mysqlConnector,并将is作为一个lib添加到你的项目中。

https://dev.mysql.com/downloads/connector/j/

【讨论】:

它是 jdbc,我下载了它并将其添加到项目和构建路径中

以上是关于如何修复:“找不到适合 jdbc:mysql://localhost/dbname 的驱动程序”错误的主要内容,如果未能解决你的问题,请参考以下文章

找不到适合'jdbc:mysql:// localhost:3306 / mysql的驱动程序[重复]

Maven:找不到适合 jdbc::mysql://google 的驱动程序

找不到适合 jdbc mysql 的驱动程序?

Openshift - 找不到适合 jdbc:mysql 的驱动程序

在 JMETER JDBC 连接配置中找不到适合 jdbc:mysql://localhost:3306/Testing 的驱动程序

找不到适合 jdbc:mysql/localhost:3306/world 的驱动程序