Передо мной стояла задача по реализации консольного CRUD приложения, которое взаимодействует с БД и позволяет выполнять все CRUD операции над сущностями:
Writer(id, name, List posts)
Post(id, content, Long created, Long updated, List labels)
Label(id, name)
PostStatus (enum ACTIVE, DELETED)
Слои:
model - POJO классы
dao - классы, реализующие доступ к базе данных
controller - обработка запросов от пользователя
service - обработка запросов от пользователя
view - все данные, необходимые для работы с консолью
Требования к приложению:
- Придерживаться шаблона MVC (пакеты model, repository, service, controller, view)
- Для взаимодействия с БД использовать Hibernate
- Для конфигурирования Hibernate использовать аннотации
- Инициализация БД должна быть реализована с помощью flyway
- Сервисный слой приложения должен быть покрыт юнит тестами (junit + mockito)
- Для импорта библиотек использовать Maven
Технологии: JavaSE8+, MySQL, Hibernate, Maven, Flyway, JUnit, Mockito.