Skip to content

Add database#3

Merged
CrodiYa merged 26 commits intomainfrom
add-database
Nov 21, 2025
Merged

Add database#3
CrodiYa merged 26 commits intomainfrom
add-database

Conversation

@CrodiYa
Copy link
Owner

@CrodiYa CrodiYa commented Nov 20, 2025

Основное
  • Добавлены Mpa и Genre модели, сервисы, контроллеры, интерфейсы хранилища и реализации бд хранилищ.
  • Реализованы бд хранилища и мапперы для предыдущих моделей.
  • Класс BaseDao - родитель для бд хранилищ с вспомогательными методами(crud).
  • Дружба стала односторонней.
  • Добавлена схема бд.
Детали
  • Сервисы доработаны для поддержки и inmemory и db хранилищ.
  • Чтобы не сильно менять логику сервисов отправляется дополнительный запрос на проверку существования. Для новых(Mpa, Genre) проверка осуществляется через Optional
  • Чтобы не отправлять несколько дополнительных запросов для получения жанров, mpa или лайков фильмы сразу выбираются при помощи join.
  • Видоизменены InMemory(Like, FriendShip) хранилища и их интерфейсы, чтобы не захламлять бд версии.
  • У бд хранилищ используется JdbcTemplate, NamedParameterJdbcTemplate и SimpleJdbcInsert - некоторые запросы удобнее выполнить нестандартным jdbc.
БД
  • В data.sql лежат скрипты добавляющие mpa и жанры.
  • Для тестов используется отдельная бд со своим скриптом наполнения.

Наставник сообщил, что можно реализовать без статуса дружбы, по фз у него нет никакой полезной нагрузки(да и упоминания вообще), поэтому я решил не реализовывать.

@RequestMapping("/genres")
public class GenreController {

GenreService service;

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Полю не обеспечена инкапсуляция, нужен модификатор доступа.

@RequestMapping("/mpa")
public class MpaController {

MpaService service;

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Полю не обеспечена инкапсуляция, нужен модификатор доступа.

@CrodiYa CrodiYa merged commit 6bda428 into main Nov 21, 2025
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants