/sberschool

Repository for sberbank school exercises

Primary LanguageJava

sberschool

Repository for sberbank school exercises

Домашнее задание #1

https://github.com/kostyawhite/sberschool/tree/master/src/ru/sber/e1

  1. Создать репозиторий (на любом сервисе: git,bitbucket)
  2. Сделать Initial Commit
  3. Создать maven проект
  4. Добавить зависимость логгера slf4j
  5. Создать простую программу, которая формирует последовательность чисел Фибоначчи. Количество чисел определяется аргументом командной строки.
  6. Вывести каждый элемент на экран.
  7. Перед завершением программы вывести на экран длительность работы программы в лог уровня INFO

Домашнее задание #2

https://github.com/kostyawhite/sberschool/tree/master/src/ru/sber/e2

Имеется набор устройств Device. Каждый device имеет id (Integer), name (String), набор компонентов Component и status (для статуса устройства предусмотрено три значения: normal, warning, error).

Component имеет id (Integer), name, status (Boolean). Status true означает что компонент работает исправно, а false – что компонент сломан.

Нужно хранить в какой-либо структуре данных набор всех устройств (Device) системы, должна быть возможность получить все данные об устройстве по его Id. В систему на вход поступает набор событий Event. События могут быть разных типов ErrorEvent, RestoreEvent.

ErrorEvent содержит поля: Integer deviceId Integer componentId

RestoreEvent содержит поля: Integer deviceId Integer componentId

Считать, что на вход подается очередь сообщений Event. Программа обрабатывает каждое сообщение из этой очереди последовательно. Событие ErrorEvent говорит о том что компонент componentId у устройства deviceId сломался. Событие RestoreEvent говорит о том что компонент componentId у устройства deviceId восстановил свою работу.

Если все компоненты устройства работают, устройство в статусе Normal. Если хотя бы одна компонента устройства не работает, устройство в статусе Warning. Если более половины компонент устройства не работает, устройство в статусе Error.

При изменении состояния устройства (Device) нужно написать в лог следующее “Устройство id = ?, name = ? изменило свое состояние на ?”.

Домашнее задание #3

  1. Реализовать клонирование объекта через сериализацию. Сравнить два объекта на equals и '=='
  2. Создать 2 исключения (checked и unchecked). Применить в коде.
  3. Получить класс, объявленный в дженерике любой коллекции через рефлексию.

Домашнее задание #4

В рамках одной транзакции произвести комплексное обновление связанных таблиц (обновление двух таблиц) Скачать и установить базу данных на выбор: postgresql , mysql, oracle. Создать несколько таблиц (любых), так, что бы между ними было хотя бы отношение «один ко многим» или «многие ко многим» Написать программу, которая будет подключаться к базе данных и производить чтение-запись(в методе main,например, сделать сохранение, обновление, чтение и удаление). В рамках одной транзакции произвести комплексное обновление связанных таблиц (обновление двух таблиц) Для каждой таблицы должна существовать Entity в вашей программе. Подключение к бд осуществить через Hibernate Конфигурацию подключения вынести в конфигурационный файл, в java коде не хранить конфигурацию. Использовать свойство ddl.auto update для автоматического обновления схемы бд.