# | Название видеоурока | Видео / Тесты | Решило | Рейтинг | Доступ |
---|---|---|---|---|---|
1 | SQLite - Знакомство |
|
|||
База данных "в кармане" SQLite - отличный выбор для мобильных и портативных разработчиков. В этом видео мы скачаем и запустим базу, создадим первую таблицу, добавим несколько записей и напишем пару SELECT запросов. Отчёт отправил: 10558. Иван Воронин Выполнено за 19 мин. [Показать отчёт] Научился: Повторил пройденное Сложности: найти время Комментарии: Как видно из скриншота, я протестировал свои догадки и оказалось всё так как я и думал, проблема в том, что консоль sqlite3 криво работает с юникодом, каждый символ занимает два байта и если ширину выставить нечётную, в моём случае я поставил 15 и последняя буква в именах Александр и Владимир были вопросиками, а если 14 или 16, то обрезало имена нормально, без артефактов. Почитав официальный форум разработчиков sqlite, подтвердил свою версию, этот баг им известен, но они его ещё не решили. От себя могу сказать лишь одно, это проблема официальной консоли, как сказал один из разработчиков, чтобы устранить баг, надо написать свою консоль. т.е. написав свою программу работы с базой, можно не бояться этого бага, так как отображение и обработка данных уже будет полностью зависеть от вашего кода, как напишите как и будет отображаться. |
|||||
2 | SQLite - Подключение из Java |
|
|||
На этом уроке мы подключимся к базе данных SQLite из программы на Java. Отчёт отправил: 10558. Иван Воронин Выполнено за 25 мин. [Показать отчёт] Научился: Установке CLASSPATH для подключения сторонних библиотек Сложности: найти время Комментарии: Отличный урок, но чтобы не перезагружаться, я через консоль установить переменную среды CLASSPATH, после чего приложение успешно отработало. см. скриншот. |
|||||
3 | SQLite - Insert |
|
|||
На этом уроке мы избавимся от статика. После чего мы реализуем подключение к нашей базе SQLite: users.db, Далее реализуем возможность добавления записей в нашу базу посредством консоли. Путь подключения библиотеки в Intelij IDEA: File -> Project Structure... (Ctrl+Alt+Shift+S) -> Modules Отчёт отправил: 10558. Иван Воронин Выполнено за 2 час. 00 мин. [Показать отчёт] Научился: Запуску jar приложения с необходимыми библиотеками из консоли. Сложности: найти время Комментарии: Пришло изрядно погуглить, поэксперементировать, так как очень много либо устаревшей либо просто не соответствующей действительности информации на просторах интернета, как в прочем и всегда. Но я всё же нашёл то, что искал, просто и красиво запускается jar файл с необходимыми библиотеками относительно пути запуска. Работает всё идеально. Так же модифицировал код метода insert(), добавив вариант отката изменений в БД, если произошла ошибка транзакции. Так же поддержка мультитранзакций, который так же проверяются перед тем как закоммититься в БД. Пригодится в будущем, при сложных, взаимосвязанных транзакциях. Отличный урок, на первый взгляд простой, в IntelliJ IDEA проблем не возникло с добавлением внешней библиотеки, но хотело это реализовать через консоль. На что и ушло основное время. |
|||||
4 | SQLite - Select |
|
|||
На этом уроке получим список записей из нашей базы SQLite: users.db. Для этого мы реализуем метод select() в классе Program(). Отчёт отправил: 10558. Иван Воронин Выполнено за 20 мин. [Показать отчёт] Научился: Повторил пройденное Сложности: найти время Комментарии: Добавил вначале отображение текущего списка, после чего запрос на добавление записи и опять вывод списка, чтобы видно было, что запись действительно добавилась. Отличный урок, коротко и ясно. |
|||||
5 | SQLite - Самостоятельная работа |
|
|||
На этом уроке у меня для вас самостоятельное задание. Смотрите видео для подробного описания. Отчёт отправил: 10558. Иван Воронин Выполнено за 14 час. 00 мин. [Показать отчёт] Научился: Работе с SQLite в Java Сложности: найти время Комментарии: Реализовал поддержку ввода имени БД, если таковая не найдена, то предлагается создать её со всеми необходимыми таблицами для корректной работы системы. Если же БД будет найдена, автоматически к ней подключится и отобразит количество студентов и лекций, которые в ней присутствуют. Потратив не мало времени, всё же удалось решить проблему с полной поддержкой русского языка как при сохранении в БД, так и загрузки оттуда. Так же записи на русском языке корректно отображаются и через консоль SQLite. На видео демонстрация работы программы: 1 - добавление 5 студентов 2 - добавление 5 лекций 3 - запись всех студентов на все лекции 4 - после добавления студента на лекцию, предлагается сгенерировать для него сразу 10 случайных оценок, если отказаться, то в последствии только вручную можно будет добавлять оценки. 5 - отображение карточки студента после того как ему добавили оценки 6 - отображение списка студентов 7 - отображение списка лекций 8 - отображение статистики успеваемости по всей БД Сделал динамичное обрамление статистики, чтобы не дублировалось название лекции более 1 раза при списке из нескольких студентов Так же сделал отображение лучшего среднего бала суммарно не по всем лекциям, как предложено в задании, а по каждой лекции и студенту отдельно. Таким образом, если максимальный средний балл будет одинаков сразу у нескольких студентов, они будут отображены, а те, кого не показали, значит у них по всем предметам средний балл соответственно ниже. Естественно добавлена защита от ввода недопустимых значений, запись студента только на те лекции, которые доступны для записи (на те, на которые он не записан, просто не отображаются в списке и если попытаться ввести их айди, выдаст ошибку) Отображается общее количество оценок в шапке таблицы, а сама таблица выводит только те лекции, где больше всего оценок, если оценок одинаковое количество сразу у нескольких лекций, то отображаются все. Модернизировал класс ConsoleArt(), добавлена поддержка выбора кодировки в которой будет отображаться информация в консоли. База данных состоит из 4 таблиц, как видно из видео, каждая таблица хранит в себе свои данные, которые связаны между собой при помощи айди записи, тем самым оптимально используя ресурсы БД и скорость работы с ней. з.ы. Так как подобную программу уже делали в курсе Java Book, но там использовали сериализацию в качестве хранения данных (с ростом размера БД она работала бы дольше, чем эта версия с SQLite). Решил использовать наработки по оформлению программы и заимствовал часть функционала, которые пришлось переписать для оптимальной работы с SQLite запросами, так как запросы возвращают уже необходимые данные, а не всю БД целиком. В итоге эта версия программы намного интереснее и лучше, чем версия с сериализацией =) Всем спасибо за просмотр, делал несколько дублей, в итоге решил сделать техническое видео, так как саму программу написал уже давно, а всё никак не залью отчёт, так как хотелось добавить и видео (как сказал студент Игромистра: Михаил Острый - тут двумя скриншотами не обойтись). Видеообзор: gzgMuP91w5E |
|||||
Итого: 5 видеоуроков |
54 мин. |
25 чел. | |||
Финалисты: Елена, Gražvydas Kairys, Сергей Соколов, Фомичева Наталья, Новопашин Владимир, Vladimir Falejev, Алексей В., Michail Ostryj, Николай Миролюбов, Tekashnik, Александр, Валерий Жданов, Александр Заскотченко, Иван Воронин, Andrej Gladkov, Aleksej Fiodorov, Andrej Petrunev, Povilas Abramovicius, Kiril Krutiajev, Sergej Šugajev, Dmitry Sinitsin, Иван, Anatoli, Yefim, Tom . |