Przygotowane oświadczenie Java nie działa

Stworzyłem mały 3-warstwowy program, składający się z: front end -> servlet -> database.

Front end Wprowadzam kilka szczegółów do formularza. Są przekazywane do serwletu, który renderuje niektóre HTML i wyświetla wartości wprowadzone do formularza, a także wywołuje klasę DatabaseHelper. DatabaseHelper łączy się i wstawia te same wartości do tabeli.

Wiem, że wartości są przekazywane do klasy serwletów, tak jak są wyświetlane w HTML. Więc problem musi leżeć w przygotowanym oświadczeniu. Problem polega na tym, że nie widzę żadnego błędu w samym oświadczeniu. Kiedy sprawdzam samą tabelę, nie ma tam żadnych danych.

Łączność z bazą danych jest funkcjonalna, ponieważ mogę wstawiać wartości do bazy danych za pomocą zakodowanych instrukcji, a nie przygotowanej instrukcji.

Oto spojrzenie, którego używam. Wszelkie porady są mile widziane.

    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();
    }
}

Definicja tabeli

id | imię | e-mail | kraj | hasło

wszystkie VARCHAR z wyjątkiem id, który jest typu INT.

questionAnswers(4)

yourAnswerToTheQuestion