На этом уроке у меня для вас самостоятельное задание. Смотрите видео для подробного описания.
Дата отправки отчёта:
16 апреля 2017 г.
Задание выполнено: за
14 час. 00 мин.
Чему научился:
Работе с SQLite в Java
Что было сложным:
найти время
Комментарии:
Реализовал поддержку ввода имени БД, если таковая не найдена, то предлагается создать её со всеми необходимыми таблицами для корректной работы системы. Если же БД будет найдена, автоматически к ней подключится и отобразит количество студентов и лекций, которые в ней присутствуют. Потратив не мало времени, всё же удалось решить проблему с полной поддержкой русского языка как при сохранении в БД, так и загрузки оттуда. Так же записи на русском языке корректно отображаются и через консоль SQLite. На видео демонстрация работы программы: 1 - добавление 5 студентов 2 - добавление 5 лекций 3 - запись всех студентов на все лекции 4 - после добавления студента на лекцию, предлагается сгенерировать для него сразу 10 случайных оценок, если отказаться, то в последствии только вручную можно будет добавлять оценки. 5 - отображение карточки студента после того как ему добавили оценки 6 - отображение списка студентов 7 - отображение списка лекций 8 - отображение статистики успеваемости по всей БД Сделал динамичное обрамление статистики, чтобы не дублировалось название лекции более 1 раза при списке из нескольких студентов Так же сделал отображение лучшего среднего бала суммарно не по всем лекциям, как предложено в задании, а по каждой лекции и студенту отдельно. Таким образом, если максимальный средний балл будет одинаков сразу у нескольких студентов, они будут отображены, а те, кого не показали, значит у них по всем предметам средний балл соответственно ниже. Естественно добавлена защита от ввода недопустимых значений, запись студента только на те лекции, которые доступны для записи (на те, на которые он не записан, просто не отображаются в списке и если попытаться ввести их айди, выдаст ошибку) Отображается общее количество оценок в шапке таблицы, а сама таблица выводит только те лекции, где больше всего оценок, если оценок одинаковое количество сразу у нескольких лекций, то отображаются все. Модернизировал класс ConsoleArt(), добавлена поддержка выбора кодировки в которой будет отображаться информация в консоли. База данных состоит из 4 таблиц, как видно из видео, каждая таблица хранит в себе свои данные, которые связаны между собой при помощи айди записи, тем самым оптимально используя ресурсы БД и скорость работы с ней. з.ы. Так как подобную программу уже делали в курсе Java Book, но там использовали сериализацию в качестве хранения данных (с ростом размера БД она работала бы дольше, чем эта версия с SQLite). Решил использовать наработки по оформлению программы и заимствовал часть функционала, которые пришлось переписать для оптимальной работы с SQLite запросами, так как запросы возвращают уже необходимые данные, а не всю БД целиком. В итоге эта версия программы намного интереснее и лучше, чем версия с сериализацией =)
Всем спасибо за просмотр, делал несколько дублей, в итоге решил сделать техническое видео, так как саму программу написал уже давно, а всё никак не залью отчёт, так как хотелось добавить и видео (как сказал студент Игромистра: Михаил Острый - тут двумя скриншотами не обойтись).
Первые дубли я так и сделал, но вечно что-то на половине записи отвлекало, а со временем и так туго, на разработку ушло не мало, поэтому решил реализовать под музычку с описанием. Хотя хотел комментировать, но что-то не срослось.
Научился: Ознакомился с SQLite базой данных и её командами.
Создал пример базы на одной табличке и связал её с Java программированием .
Запросы через консоль мы делали уже на другом уроке.