[RESOLVIDO] com alterar no banco

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

[code] 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;

}
[/code]

Botão pra alterar

[code]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();

    }
} [/code]

Olá,

Qual é o erro?

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

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

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=?"; ^

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

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

muito obrigada! :stuck_out_tongue: