@Override
    public Concurso alterar(IEntidade entidade) throws SQLException {

        if (entidade instanceof Concurso) {

            Concurso concurso = (Concurso) entidade;
            Connection connection = ConnectionFactory.getConnection();

            String sql = " UPDATE concurso SET ";
            sql += "     ministerio = ?, ";
            sql += "     instituicao = ?, ";
            sql += "     id_campus = ?, ";
            sql += "     area = ?, ";
            sql += "     edital = ?, ";
            sql += "     id_classe_concurso = ?, ";
            sql += "     data_inicio = ?, ";
            sql += "     tem_prova_escrita = ?, ";
            sql += "     tem_prova_titulo = ?, ";
            sql += "     tem_prova_didatica = ?, ";
            sql += "     tem_prova_memorial = ? ";
            sql += "   WHERE ";
            sql += "     id_concurso = ? ";

            try {

                PreparedStatement stmt = connection.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS);

                stmt.setString(1, concurso.getMinisterio());
                stmt.setString(2, concurso.getInstituicao());

                if (concurso.getCampus().getIdCampus() != 0) {
                    stmt.setInt(3, concurso.getCampus().getIdCampus());
                } else {
                    stmt.setString(3, null);
                }

                stmt.setString(4, concurso.getArea());
                stmt.setString(5, concurso.getEdital());

                if (concurso.getClasseConcurso() != null) {
                    stmt.setInt(6, concurso.getClasseConcurso().getIdClasseConcurso());
                } else {
                    stmt.setString(6, null);
                }

                stmt.setDate(7, new java.sql.Date(concurso.getDataInicio().getTime()));
                stmt.setBoolean(8, concurso.isTemProvaEscrita());
                stmt.setBoolean(9, concurso.isTemProvaTitulos());
                stmt.setBoolean(10, concurso.isTemProvaDidática());
                stmt.setBoolean(11, concurso.isTemProvaMemorial());

                stmt.setInt(12, concurso.getIdConcurso());

                if (stmt.executeUpdate() == 1) {
                    return concurso;
                }

            } catch (Exception e) {
                e.printStackTrace();
            }

        }

        return null;

    }