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

Posted

技术标签:

【中文标题】找不到适合 jdbc:mysql/localhost:3306/world 的驱动程序【英文标题】:No suitable driver found for jdbc:mysql/localhost:3306/world 【发布时间】:2016-10-01 16:38:36 【问题描述】:

我是这个领域编程的新手,我在驱动程序方面遇到了一些问题,有点:

当我直接与客户端一起使用 mysql 时,它工作正常,问题是我无法与 MySql 建立连接 tomcat

我把所有的驱动都放在了 WEB-INF/lib

使用 mysql 5.7、tomcat 9.1、java 8、IntellijIdea 2016.1.1

java.sql.SQLException: 在 java.sql.DriverManager.getConnection(DriverManager.java:689) 在 java.sql.DriverManager.getConnection(DriverManager.java:247) 在 Db.main(Db.java:20)

这是我的代码:

import java.io.Serializable;

import java.sql.*;

public class Db implements Serializable


public static void main(String args[])
    Connection connection;
    final String dbURL = "jdbc:mysql/localhost:3306/world";
    final String username = "root";
    final String pswd = "******";
    try
        DriverManager.getDrivers();
        connection = DriverManager.getConnection(dbURL,username,pswd);
        Statement statement = connection.createStatement();
        String query = "SELECT * FROM city WHERE Name LIKE 'New%'";
        ResultSet result = statement.executeQuery(query);
        while(result.next())

            int id          = result.getInt("ID");
            String name     = result.getString("Name");
            String cCode    = result.getString("CountryCode");
            String district = result.getString("District");
            int pop         = result.getInt("Population");

            System.out.print("id = "+id+"</br>Name = "+name+
                    "</br>Code = "+cCode+"</br>District = "+district+
                    "</br>Population = "+pop+"</br>");
        
    catch (SQLException e)
        e.printStackTrace();
    catch(Exception e)
        e.printStackTrace();
    


【问题讨论】:

放到tomcat/lib中 添加 Class.forName("com.mysql.jdbc.Driver");如果你还没有,也将 mysql 连接器 jar 放在 lib 中。我发现您也没有正确的网址。正确格式:jdbc:mysql://:/ @027 您的第一个建议自 2007 年以来就不再需要,也无法解决问题。 【参考方案1】:

MySQL JDBC URL 的语法是:

用于连接 MySQL 服务器的 JDBC URL 的一般格式如下,方括号 ([ ]) 中的项目是可选的:

jdbc:mysql://[host1][:port1][,[host2][:port2]]...[/[database]][?propertyName1=propertyValue1[&propertyName2=propertyValue2]...]

这是一个连接 URL 的简单示例:

jdbc:mysql://localhost:3306/sakila?profileSQL=true

您的网址jdbc:mysql/localhost:3306/worldmysql 之后缺少:/

端口号默认为3306,因此您的网址应为:

jdbc:mysql://localhost/world

【讨论】:

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

瑞吉外卖笔记

Bower:找不到适合 Angular 的版本

SMBMS超市订单管理系统

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

这是啥错误? “无法添加数据连接。找不到任何适合指定文化或中性文化的资源。”

找不到适合指定文化或中性文化的任何资源