- Обеспечить контроль ошибок во входных данных и различных ситуациях в БД
5.3. Выполнение работы
Индивидуальное задание.
- Из XML – файла добавление записей в базу.
- Экспорт данных в XML: рейтинги фильмов за последний год.
Выбор режима определяется опцией командной строки.
Класс Main.java.
package filmbase;
import java.io.IOException;
import java.sql.*;
import java.util.Arrays;
import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.xml.stream.XMLStreamException;
import org.xml.sax.SAXException;
/**
* Допустимые аргументы командной строки:
*
* args ::= -o_films % вывести список фильмов
* | -o_persons % вывести список киноперсон
* | -o_films <genre> % вывести фильмы указанного жанра
* | -a_films <filename> % добавить фильмы из файла
* | -d_films <filename> % удалить фильмы, указанные в файле
* | -r <year> <filename> % вывести средние рейтинги фильмов, указанного года, в заданный файл
*
* @author Tanya Wert
*/
public class Main {
/**
* Специальная ошибочная опция.
* Для неё накапливаются значения при некорректных аргументах командной
* строки
*/
private final static String ERROR_OPTION = "";
/**
* Все остальные опции
*/
private final static String LIST_FILMS = "-o_films";
private final static String LIST_PERSONS = "-o_persons";
private final static String ADD_FILMS = "-a_films";
private final static String DELETE_FILMS = "-d_films";
private final static String RATING = "-r";
/**
* Коллекция допустимых опций
*/
private final static Collection<String> OPTIONS = Arrays.asList(
LIST_FILMS,
LIST_PERSONS,
ADD_FILMS,
DELETE_FILMS,
RATING);
/**
* Разбирает аргументы командной строки на опции и их значения.
* @param args массив строк с аргументами.
* @return карта (отображение) опций на их значения.
*/
private static Map<String, List<String>> parseOptions(final String[] args) {
final Map<String, List<String>> options = new HashMap<String, List<String>>();
int optind = 0;
// Опция по умолчанию
String current = ERROR_OPTION;
// Кладем для опции по умолчанию пустую коллекцию значений
options.put(current, new LinkedList<String>());
while (optind < args.length) {
final String option = args[optind];
if (option.startsWith("-")) {
// Если встретили недопустимую опцию
if (!OPTIONS.contains(option)) {
// выводим справку и выходим
printHelp();
}
// Делаем опцию текущей
current = option;
// Кладем для неё пустой список значений
options.put(current, new LinkedList<String>());
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.