一尘不染

jdbc到MYSQL错误:找不到适用于jdbc:mysql:// localhost:3306 / test的合适驱动程序?user='root'&password =''

jsp

我有以下代码连接到mysql数据库:

public static void insertIntoDatabase(String code,String name,String temp,String hum,String del) {
    Connection con = null;
    ResultSet rs = null;

    String url = "jdbc:mysql://localhost:3306/test";
    String user = "root";
    String password = "";

    try {
        Class.forName("com.mysql.jdbc.Driver");
        con = DriverManager.getConnection(url, user, password);
        rs = con.prepareStatement("CREATE TABLE IF NOT EXISTS AiportDetails(code VARCHAR(50) PRIMARY KEY, " +
                "name VARCHAR(50), temp VARCHAR(50), hum VARCHAR(50), del VARCHAR(50)) ENGINE=InnoDB;").executeQuery();
        rs = con.prepareStatement("INSERT INTO AirportDetails(code,name,temp,hum,del) VALUES("+code+","+
                name+","+temp+","+hum+","+del+");").executeQuery();
    } catch (SQLException ex) {
        ex.printStackTrace();
    } finally {
        try {
            if (rs != null) {
                rs.close();
            }
            if (con != null) {
                con.close();
            }

        } catch (SQLException ex) {
            ex.printStackTrace();
        }
    }
}

我收到以下错误:

java.lang.ClassNotFoundException: com.mysql.jdbc.Driver

注意 我在网上发现了一些常见的更正:

1. The driver is not in the /WEB-INF/lib folder.
2. The url is wrong.

我不认为我的代码就是这种情况。
谢谢。


阅读 601

收藏
2020-06-08

共1个答案

一尘不染

如果您在建立第一个连接之前没有加载驱动程序,则可能发生这种情况。

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

可以肯定的是,驾驶员必须进入/WEB-INF/lib,而不是进入/WEB- INF。顺便说一下,那里有一些SQL注入漏洞。看看PreparedStatement。该finally还可以提高,因为你现在拥有它时,con当永远不会被关闭rs.close()抛出异常。

2020-06-08