Ошибка jdbc to MYSQL: не найден подходящий драйвер для jdbc:mysql://localhost:3306/test?user='root'&password=''


У меня есть следующий код для подключения к базе данных 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.

Я не думаю, что это относится к моему коду.
Спасибо.


person Brahadeesh    schedule 16.05.2012    source источник


Ответы (1)


Это может произойти, если вы не загрузили драйвер перед первым подключением.

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

Чтобы быть уверенным, водитель должен ехать в /WEB-INF/lib, а не в /WEB-INF. У вас там, кстати, какие-то дыры для SQL-инъекций. Посмотрите на PreparedStatement. finally также можно улучшить, так как он у вас есть сейчас, con никогда не будет закрыт, когда rs.close() выдаст исключение.

person BalusC    schedule 16.05.2012
comment
Привет. Мне жаль. Он находится в папке /WEB-INF/lib. и теперь я получаю исключение ClassNotFoundException. В чем может быть проблема? - person Brahadeesh; 16.05.2012