Erro para fazer Update

Boa noite pessoal, tenho o seguinte código de update:

public void update(Funcionarios d) {

    ConexaoDB con = new ConexaoDB();
    con.conectar();
    
    String sqlUpdate = "UPDATE Funcionarios SET prefixo_agencia = ?, nome_agencia = ?, nome_funcionario = ?, telefone_funcionario = ?,cargo_agencia = ?, roupa = ?, bota = ?, where ID = ?";
    
    PreparedStatement stmt = con.criarPreparedStatment(sqlUpdate);
    
    
    try {
        
        stmt.setInt(1, d.getPrefixo_agencia());
        stmt.setString(2, d.getNome_agencia());
        stmt.setString(3, d.getNome_funcionario());
        stmt.setString(4, d.getTelefone_funcionario());
        stmt.setString(5, d.getCargo_agencia());
        stmt.setString(6, d.getRoupa());
        stmt.setInt(7, d.getBota());
        stmt.setString(8, d.getId());

        stmt.executeUpdate();

        JOptionPane.showMessageDialog(null, "Sua biblioteca foi atualizada com sucesso!");

    } catch (SQLException e) {
        JOptionPane.showMessageDialog(null, "Erro no statement SQL, entre em contato com o administrador do sistema.");
    } finally {
        con.desconectar();
    }
}

e esse para adicionar os valores no botão de salvar

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

    Funcionarios d = new Funcionarios();

    Query dao = new Query();
    
    
    
    
    d.setPrefixo_agencia(Integer.parseInt(prefixo.getText()));
    d.setNome_agencia(agencia.getText());
    d.setNome_funcionario(funcionario.getText());
    d.setTelefone_funcionario(telefone.getText());
    d.setCargo_agencia(cargo.getSelectedItem().toString());
    d.setRoupa(roupa.getSelectedItem().toString());
    d.setBota(Integer.parseInt(calcado.getText()));
    d.setId(ID.getText());
  
 
    ID.setText("");
    prefixo.setText("");
    agencia.setText("");
    funcionario.setText("");
    telefone.setText("");
    
    
    dao.update(d);
    
    DefaultTableModel modelo = (DefaultTableModel) tabelaTel.getModel();
    this.listafuncionario= new Query().selectTel();
    readtabela();
    
}          

Meu problema é q fico tendo

Exception in thread “AWT-EventQueue-0” java.lang.NullPointerException
at DAO.Query.update(Query.java:221)

O tempo todo e não acho o pq o valor não esta indo, alguém tem alguma ideia? podem me ajudar por favor, agradeço.

Não duplique seus tópicos!

Nao dupliquei, algo deu errado e duplicou ele sem querer, desculpe

Antes do WHERE não tem vírgula