Instrução preparada para Java não executando
Eu criei um pequeno programa de 3 camadas, consistindo em: front end -> servlet -> database.
Front end Eu entro em alguns detalhes em um formulário. Eles são passados para um servlet, que renderizará alguns HTML e exibirá os valores inseridos no formulário, além de chamar uma classe DatabaseHelper. O DatabaseHelper então conecta e insere esses mesmos valores em uma tabela.
Eu sei que os valores estão sendo passados para a classe servlet ok, como eles estão sendo exibidos no HTML. Portanto, o problema deve estar dentro da declaração preparada. O problema é que não consigo ver nenhuma falha na declaração em si. Quando eu consultar a tabela em si, não há dados lá.
A conectividade do banco de dados é funcional, pois posso inserir valores em um banco de dados usando instruções codificadas, mas não uma instrução preparada.
Aqui está uma olhada na declaração que estou usando. Qualquer conselho é muito 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();
}
}
Definição de tabela
id | nome | email | país | senhaall VARCHAR exceto o id, que é do tipo INT.