In my DAO class, I have the method to insert into the database, however on my system screen I can only update the fields if I make a change in all fields.
Example: my table has 4 fields and I only change 1, the update does not work by my button, but if I modify the text of the 4 fields the update works.
DAO class method to update field:
public boolean alterar(Cidades cidades)
{
String sql = “UPDATE tb_cidade SET nome_Cidade = ?, tb_estado_id_Estado = ? WHERE id_Cidade = ?”;
try
{
PreparedStatement stmt = connection.prepareStatement(sql);
stmt.setString(1, cidades.getNome_Cidades());
stmt.setInt(2, cidades.getId_Estados());
stmt.setInt(3, cidades.getId_Cidades());
stmt.execute();
return true;
}
catch(SQLException ex)
{
JOptionPane.showMessageDialog(null, "Não foi possível alterar do banco: " + ex);
return false;
}
}
Controller class method that calls the change method of the DAO class:
@FXML
private void atualizarDadosSelecionados(ActionEvent event) {
Cidades cidades = new Cidades();
cidades.setNome_Cidades(txtNomeCidade.getText());
cidades.setId_Estados(comboBoxSiglaEstado.getValue().getId_Estado());
cidades.setId_Cidades(Integer.parseInt(txtCodigoCidade.getText()));
cidadesDAO.alterar(cidades);
carregaCidadesNaTableView();
limparCampos();
}