Skip to content

kpechenenko/video-library

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

33 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

База данных видеотеки

Зачем этот учебный проект?

  • Практика на Java 17.
  • Поработать с базой данных через JDBC и пул соединений.
  • Спроектировать базу данных и написать запросы на SQL.
  • Практика написания тестов.

Постановка задачи

В задание необходимо выполнить следующие действия на Java используя JDBC:

  • организацию соединения с базой данных вынести в отдельный класс, метод которого возвращает соединение;
  • создать БД, привести таблицы к одной из нормальных форм;
  • создать класс для выполнения запросов на извлечение информации из БД с использованием компилированных запросов.

Требования к базе данных

В БД хранится информация о домашней видеотеке: фильмы, актеры, режиссеры.

Для фильмов необходимо хранить:

  • название;
  • имена актеров;
  • дату выхода;
  • страну, в которой выпущен фильм.

Для актеров и режиссеров необходимо хранить:

  • ФИО;
  • дату рождения.

Требования к запросам

Необходимо реализовать запросы:

  • Найти все фильмы, вышедшие на экран за последние N лет.
  • Вывести информацию об актерах, снимавшихся в заданном фильме.
  • Вывести информацию об актерах, снимавшихся как минимум в N фильмах.
  • Вывести информацию об актерах, которые были режиссерами хотя бы одного из фильмов.
  • Удалить все фильмы, дата выхода которых была более заданного числа лет назад.

Решение

Стек

  • Java 17.
  • Junit 4.
  • Maven.
  • PostgreSQL.
  • HikariCP.

Пояснение

  • Скрипт для создания таблиц schema.sql.
  • Скрипт для заполнения таблиц значениями data.sql.
  • Скрипт для уничтожения таблиц destroy.sql.
  • Запросы описаны в QueriesToDataBaseFromTaskDescription.java и реализованы в VideoLibraryService.java.
  • Демонстрация в App.java.
  • Тест соединения с базой в DataBaseConnectionCreatorTest.java.
  • Тестирование запросов в VideoLibraryServiceTest.java.

Запуск

  • Установить параметры для подключения к базе в application.properties или создать базу с указанными параметрами.
  • Подключаться к базе данных, используя psql.
  • Инициализировать таблицы из файла:
\i ./schema.sql
  • Заполнить таблицы значениями:
\i ./data.sql
  • Запустить App.java.

About

Study project. Java data base wrapper.

Topics

Resources

Stars

Watchers

Forks

Languages