Java CRUD problem using Mysql

Asked

Viewed 106 times

0

In my DAO class, I have the method to enter in the database, but in 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 modify 1, update does not work by my button, but if I modify the text of the 4 fields 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 calling 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();

}
  • If you want to modify only one field, why do you have two fields in your query???

  • Good evening, notnull fields need to be filled even if with nothing.

No answers

Browser other questions tagged

You are not signed in. Login or sign up in order to post.