[RESOLVIDO] com alterar no banco

6 respostas
R

Oii

Estou fazendo um prog de cadastro de cliente...
ele ta dando erro na hora de alterar... alguem pode me ajudar

Obs: to usando swing.

Classe DTO
com as variaveis declaradas e os sets e gets

Classe DAO
public ClienteDTO alterar ( ClienteDTO clienteDTO) throws SQLException {

    database = new Database();

    String sql = "update cliente set nome=?, endereco=?, cidade=?, estado=?, saldo=?, ativo=?"
            + "where id=?";

    int index=1;
    PreparedStatement pstmt = database.getInstance().prepareStatement(sql);
    pstmt.setString(index++, clienteDTO.getNome());
    pstmt.setString(index++, clienteDTO.getEndereco());
    pstmt.setString(index++, clienteDTO.getCidade());
    pstmt.setString(index++, clienteDTO.getEstado());
    pstmt.setDouble(index++, clienteDTO.getSaldo());
    pstmt.setInt(index++, clienteDTO.getAtivo());
    pstmt.setInt(index++, clienteDTO.getId());
    pstmt.execute();

    return clienteDTO;
}

Botão pra alterar

private void btnGravarActionPerformed(java.awt.event.ActionEvent evt) {                                          
        // TODO add your handling code here:


        lblMensagem.setText("");
        if ( !  validarDados()  ) {

            ClienteDTO clienteDTO = new ClienteDTO(txtId.getText(), txtNome.getText(), txtEndereco.getText(), txtCidade.getText(), cbEstado.getSelectedItem(), Double.parseDouble(txtSaldo.getText()), ckbAtivo.isSelected() ? 1 : 0);
            //clienteDTO.setAtivo(ckbAtivo.isSelected() ? 1 : 0);

            ClienteDAO clienteDAO = new ClienteDAO();
            
            try {
                if ( clienteDTO.getId()==0)
                    clienteDAO.incluir(clienteDTO);
                else
                    clienteDAO.alterar(clienteDTO);
                    btnExcluir.setEnabled(false);

            } catch (SQLException ex) {
                Logger.getLogger(Cliente.class.getName()).log(Level.SEVERE, null, ex);
            }


            lblMensagem.setText("Registro salvo com sucesso!!!");
            inicializa();

        }
    }

6 Respostas

R

Olá,

Qual é o erro?

D

Posta por favor o erro e exceção por favor.

juliofsn

Diga qual erro que ocorre.
Mas já pra ter certeza, você está fechando a conexão antes de executar outro comando?

wbdsjunior

faltou um espaço antes do where.

o comando depois de concatenado ficou assim:

ativo=?where id=?

coloque o espaço e faça um novo teste.

String sql = "update cliente set nome=?, endereco=?, cidade=?, estado=?, saldo=?, ativo=?" + " where id=?"; ^

marcelo.bellissimo

Ou use Hibernate e jamais se preocupe com esse tipo de erro novamente… 8)

R

então… era isso msmo do espaço antes do where.

muito obrigada! :stuck_out_tongue:

Criado 9 de junho de 2010
Ultima resposta 9 de jun. de 2010
Respostas 6
Participantes 6