有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

我从Oracle的网站上获取了这个示例,但我无法实现它。它不断地显示错误。我已经将mysql 5.1驱动程序jar添加到我的项目库文件夹中 以及我的构建路径。如何修复代码

链接-http://docs.oracle.com/javase/tutorial/jdbc/basics/connecting.html

错误-

java.sql.SQLException: No suitable driver found for jdbc:JavaEE://localHost:3306/
    at java.sql.DriverManager.getConnection(DriverManager.java:602)
    at java.sql.DriverManager.getConnection(DriverManager.java:154)
    at com.beans.us.dao.Data.getConnection(Data.java:25)
    at com.beans.us.dao.Data.main(Data.java:43)
Cannot connect to database

代码-

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Properties;

public class Data {

    public static Connection getConnection() {

        Connection conn = null;
        Properties connectionProps = new Properties();
        String userName = "root";
        String password = "root";
        String dbms = "JavaEE";
        String serverName = "localHost";
        String portNumber = "3306";

        connectionProps.put("user", userName);
        connectionProps.put("password", password);

        try {

            conn = DriverManager.getConnection("jdbc:" + dbms + "://"
                    + serverName + ":" + portNumber + "/", connectionProps);
        } catch (SQLException sQLException) {
            sQLException.printStackTrace();
        }

        if (conn != null) {
            System.out.println("Connected to database");
        } else {
            System.out.println("Cannot connect to database");
        }

        return conn;
    }

    public static void main(String[] args) {

        getConnection();

    }

}

共 (3) 个答案

  1. # 1 楼答案

    您的连接字符串是:

    "jdbc:JavaEE://..."
    

    但MySQL应该是这样的

    "jdbc:mysql://..."
    

    此外,您忘记加载驱动程序:

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

    需要在打电话之前完成

    conn = DriverManager.getConnection(...);
    
  2. # 3 楼答案

    你好像忘了给司机装东西了

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

    Class.forName()使类加载器将类加载到内存中。JDBC驱动程序类包含一个静态初始值设定项块,它将驱动程序注册到DriverManager以供以后参考

    之前没有注意到这一点,您的连接字符串应该是"jdbc:mysql://localhost:3306/dbname"