Declaración preparada de Java que no se ejecuta

He creado un pequeño programa de 3 niveles, que consiste en: front end -> servlet -> database.

Front end entro algunos detalles en un formulario. Se pasan a un servlet, que mostrará un poco de HTML y mostrará los valores ingresados ​​en el formulario, mientras que también llama a una clase DatabaseHelper. El DatabaseHelper luego conecta e inserta estos mismos valores en una tabla.

Sé que los valores se pasan a la clase de servlet, ya que se muestran en el HTML. Así que el problema debe estar dentro de la declaración preparada. El problema es que no puedo ver ningún fallo en la declaración en sí. Cuando pregunto la tabla en sí, no hay datos allí.

La conectividad de la base de datos es funcional, ya que puedo insertar valores en una base de datos utilizando declaraciones codificadas, pero no una declaración preparada.

Aquí está una mirada a la declaración que estoy usando. Cualquier consejo es muy apreciado.

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

Definición de tabla

id | nombre | email | país | contraseña

todo VARCHAR excepto el id, que es de tipo INT.

Respuestas a la pregunta(4)

Su respuesta a la pregunta