Подготовленный Java оператор не выполняется

Я создал небольшую трехуровневую программу, состоящую из: front end -> servlet -> database.

Передний конец я ввожу некоторые детали в форму. Они передаются сервлету, который будет отображать некоторый HTML-код и отображать значения, введенные в форму, а также вызывать класс DatabaseHelper. Затем DatabaseHelper соединяет и вставляет эти же значения в таблицу.

Я знаю, что значения передаются в класс сервлета нормально, так как они отображаются в HTML. Таким образом, проблема должна лежать в подготовленном утверждении. Проблема в том, что я не вижу никакой ошибки в самом утверждении. Когда я запрашиваю саму таблицу, там нет данных.

Соединение с базой данных является функциональным, поскольку я могу вставлять значения в базу данных, используя жестко закодированные операторы, но не подготовленный оператор.

Вот посмотрите на утверждение, которое я использую. Любой совет высоко ценится.

    public void addRegisterDetails(String name, String email, String country, String password, ){
    try{ 
        String driver = "com.mysql.jdbc.Driver";    
        Class.forName(driver).newInstance();
        // Make db connection
        con = DriverManager.getConnection(url, USERNAME, PASSWORD);   
        st  = con.createStatement();


        String query = " INSERT INTO user_information (name, email, country, password)" + " VALUES (?, ?, ?, ?)";
        PreparedStatement preparedStmt = con.prepareStatement(query);
        preparedStmt.setString (1, name);
        preparedStmt.setString (2, email);
        preparedStmt.setString (3, country);
        preparedStmt.setString (4, password);
        preparedStmt.execute();

    }catch(ClassNotFoundException ex) {
        System.out.println(ex);
    }catch(Exception e){
         e.printStackTrace();
    }
}

Определение таблицы

ID | имя | электронная почта | страна | пароль

все VARCHAR кроме идентификатора, который имеет тип INT.

Ответы на вопрос(4)

Ваш ответ на вопрос