public int update(Endereco e) {
        Connection con = null;
        PreparedStatement pstm = null;
        int retorno = -1;
        
        try {
            con = ConnectionFactory.getConnection();
            pstm = con.prepareStatement(UPDATE);

            pstm.setString(1, e.getEstado());
            pstm.setString(2, e.getCidade());
            pstm.setString(3, e.getBairro());
            pstm.setString(4, e.getRua());
            pstm.setString(5, e.getComplemento());
            pstm.setInt(6, e.getNumero());
            pstm.setInt(7, e.getCodigo());

            pstm.execute();
            retorno = e.getCodigo();

        } catch (Exception ex) {
            JOptionPane.showMessageDialog(null, "Erro ao editar endereço do funcionario: " + ex.getMessage());
        } finally {
            try {
                ConnectionFactory.closeConnection(con, pstm);
            } catch (Exception ex) {
                JOptionPane.showMessageDialog(null, "Erro ao fechar conexão: " + ex.getMessage());
            }
        }
        return retorno;
    }