Базы данных SQL-DDL и SQL-DML. Изучение транзакций. Программирование на языке SQL. Консольное приложение (Цикл лабораторных работ). Вариант № 2, страница 19

        final Connection c = ConnectionParameters.getConnection();

        try {

            Statement stmt = c.createStatement();

            try {

                final String query =

                        "SELECT film.name, Count(rating.rating), AVG(rating.rating) from  film, rating "+

                        "WHERE rating.film_id = film.f_id AND film.year_of_creation = "+

                        year + " GROUP BY film.name";

                stmt.executeQuery(query);

                ResultSet rs = stmt.executeQuery(query);

                while (rs.next()) {

                    results.add(new AVGRating(

                            rs.getString("NAME"),

                            rs.getInt("COUNT"),

                            rs.getInt("AVG")));

                }

            } finally {

                stmt.close();

            }

        } finally {

            c.close();

        }

        return results;

    }

}

Класс FilmRatingsWriter.java.

package filmbase;

import java.io.FileWriter;

import java.io.IOException;

import java.util.Collection;

import javax.xml.stream.XMLOutputFactory;

import javax.xml.stream.XMLStreamException;

import javax.xml.stream.XMLStreamWriter;

/**

 * Класс предназначенный для вывода рейтингов фильмов в XML

 *

 * @author Wert Tanya

 */

public class FilmRatingsWriter {

    /**

     * Записать рейтинги фильмов в XML-файл.

     *

     * @param fileName  имя XML-файла, в который записываются результаты

     * @param ratings   коллекция результатов рейтингов

     * @throws IOException

     * @throws XMLStreamException

     */

    public static void  writeRatings(

            final String fileName,

            final Collection<AVGRating> ratings) throws IOException, XMLStreamException {

        // Создание фабрики объектов вывода в XML

        final XMLOutputFactory factory = XMLOutputFactory.newInstance();

        // Создание объекта, позволяющего записывать информацию в XML

        final XMLStreamWriter writer =

                factory.createXMLStreamWriter(new FileWriter(fileName));

        writer.writeStartDocument();

        writer.writeStartElement("marks");

        for (AVGRating sr: ratings) {

            writer.writeStartElement("mark");

            writer.writeAttribute("name", sr.getName());

            writer.writeAttribute("votes", Integer.toString(sr.getVotes()));

            writer.writeAttribute("rating", Integer.toString(sr.getMark()));

            writer.writeEndElement();

        }

        writer.writeEndElement();

        writer.writeEndDocument();

        writer.flush();

        writer.close();

    }

}

Класс Man.java.

package filmbase;

import java.sql.Date;

/**

 * Содержит информацию об одном человеке.

 *

 * @author Tanya Wert

 */

public class Man {

    private int id;

    private String Name;

    private String Surname;

    private Date birthDate;

    private String sex;

    public Man(

            int id,

            String mName,

            String mSurname,

            Date mbirthDate,

            String msex) {

        this.id = id;

        this.Name = mName;

        this.Surname = mSurname;

        this.birthDate = mbirthDate;