Erro ao editar dados no banco de dados

Boa noite! Estou tentando criar o metodo editar. Eu consulto o morador no meu banco dedados e tento fazer a edição pelo formulário, através da IDE Netbeans. Quando realizao a alteração e clico em editar, o netbeans só exibe a mensagem de erro ao editar os dados.

No netbenas exibe a seguinte mensagem:

Loading class com.mysql.jdbc.Driver'. This is deprecated. The new driver class is com.mysql.cj.jdbc.Driver’. The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary.

Mas já adianto, que o meu driver de conexão, já está atualizado para:
com.mysql.cj.jdbc.Driver

Segue o metodo editar:

public void editar(Morador objeto) {

    String sql = "UPDATE morador SET Rg=?, Usuario=?, Senha=?, Nome=?, Celular=? , Nascimento=? ,Email=? ,Logradouro=? ,Numero=? ,Complemento=? , Bairro=? ,Municipio=? ,Cep=? ,Uf=? ,Id=? WHERE Cpf=? ";
    Connection conn = null;
    PreparedStatement pstm = null;
    
    try {
        conn = ConexaoDAO.getConnection();
        pstm = conn.prepareStatement(sql);
        pstm.setString(1, objeto.getRg());
        pstm.setString(2, objeto.getUsuario());
        pstm.setString(3, objeto.getSenha());
        pstm.setString(4, objeto.getNome());
        pstm.setString(5, objeto.getCelular());
        pstm.setString(6, objeto.getNascimento());
        pstm.setString(7, objeto.getEmail());
        pstm.setString(8, objeto.getLogradouro());
        pstm.setString(9, objeto.getNumero());
        pstm.setString(10, objeto.getComplemento());
        pstm.setString(11, objeto.getBairro());
        pstm.setString(12, objeto.getMunicipio());
        pstm.setString(13, objeto.getCep());
        pstm.setString(14, objeto.getUf());
        pstm.setInt(15, objeto.getId());
        pstm.setString(16, objeto.getCpf());

        pstm.execute();

        // fechando a conexão
        pstm.close();

    } catch (Exception erro) {
        throw new RuntimeException(erro);
    }
}

Código do botão Editar

// TODO add your handling code here:
try {
//botão editar
//1º passo - guardar os dados da tela no obj morador
Morador morador = new Morador();
morador.setRg(txtRg.getText());
morador.setUsuario(txtUsuarioMorador.getText());
morador.setSenha(txtSenha.getText());
morador.setNome(txtNomeMorador.getText());
morador.setCelular(txtCelular.getText());
morador.setNascimento(txtNascimento.getText());
morador.setEmail(txtEmail.getText());
morador.setLogradouro(txtLogradouro.getText());
morador.setNumero(txtNumero.getText());
morador.setComplemento(txtComplemento.getText());
morador.setBairro(txtBairro.getText());
morador.setMunicipio(txtMunicipio.getText());
morador.setCep(txtCep.getText());
morador.setUf(txtUf.getText());
morador.setId(Integer.parseInt(txtId.getText()));
morador.setCpf(txtCpf.getText());

        //criando um objeto do tipo MoradorDAO
        MoradorDao moradordao = new MoradorDao();
        moradordao.editar(morador);

        JOptionPane.showMessageDialog(null, "Dados alterados com sucesso!");

    } catch (Exception erro) {
        JOptionPane.showMessageDialog(null, "ERRO AO ALTERAR OS DADOS: + erro");

        //2º Limpe os campos de texto após a atualização
        txtRg.setText("");
        txtNomeMorador.setText("");
        txtEmail.setText("");
        txtCelular.setText("");
        txtBairro.setText("");
        txtLogradouro.setText("");
        txtNumero.setText("");
        txtComplemento.setText("");
        txtCpf.setText("");
        txtUsuarioMorador.setText("");
        txtSenha.setText("");
        txtCep.setText("");
        txtMunicipio.setText("");
        txtNascimento.setText("");
        txtUf.setText("");
        txtId.setText("");
    }

Ressalto que a ordem e excrita dos atributos, estão iguais com o do banco de dados.

Põe um printStacktrace pra obter o erro exato.