Skip to content

DmitriiPodlesnykh/dog-shelter-example

Repository files navigation

dog-shelter-example

Java CI with Gradle

Запуск проекта:

1. Открыть панель Gradle в Idea: View -> Tool Windows -> Gradle 1. В открывшимся окне развернуть dog-shelter-example -> tasks -> application -> run 1. запустить run

Подключение к БД из консоли:

1. [Информация для intellij idea community edition](https://www.jetbrains.com/help/idea/connecting-to-a-database.html#connect-to-postgresql-database) 1. [Информация для intellij idea community edition](https://plugins.jetbrains.com/plugin/1800-database-navigator) 1. Данные(Могут меняться, пишите если не получается подключиться):
Название поля Значение
Host ec2-54-247-78-30.eu-west-1.compute.amazonaws.com
Port 5432
User xgelkpgtivsuvf
Password facd5537e5c673703e283c3a3728b73da206fbb123cef8bf310d2bee7d7c6202
DataBase d91lfd343lpk2a
URL jdbc:postgresql://ec2-54-247-78-30.eu-west-1.compute.amazonaws.com:5432/d91lfd343lpk2a

История занятий

##13.10.2020

  1. Регулярные выражения

Что почитать:

  1. w3schools examples
  2. regular expressions UI
  3. Не бойтесь регулярных выражений. Regex за 20 минут!
  4. Regular expressions in Java - Tutorial

Рекомендуется выполнить:

  1. Реализовать функционал: При обращении по GET запросу someurl:port/regexp/dog/name/a Возвращать страницу, на которой перечисленны имена всех собак из БД, у которых есть хотя бы одна а в имени + общая длинна имени 5-10 символов + отсутсвуют цифры в имени.

#29.09.2020

  1. Константы
  2. Рефакторинг: извлечение метода.

Что почитать:

  1. How To Declare a Constant in Java
  2. Замена магического числа символьной константой
  3. Длинный метод
  4. Извлечение метода

Рекомендуется выполнить:

Рефакторинг 2-3 методов проекта.

15.09.2020

  1. Getter/Setter

Что почитать:

  1. Краткий пример
  2. Basics, Common Mistakes, and Best Practices

08.09.2020

  1. Reflection

Что почитать:

  1. видео о reflection
  2. JavaRush рефлексия

01.09.2020

  1. StringBuilder
  2. HTML table

Что почитать:

  1. Знакомство со String, StringBuffer и StringBuilder в Java
  2. HTML tables

Рекомендуется выполнить:

Предыдущую домашку

25.08.2020

  1. Comparator, Comparable interfaces
  2. TreeSet

Что почитать:

  1. Comparator, Comparable interfaces from metanit
  2. Comparator, Comparable interfaces from JavaRush
  3. Бинарное дерево. Факультативно

Рекомендуется выполнить:

  1. Реализовать поведение: При общании по .../dog/names/sortByNameAsc выводить список всех имен собак из БД, отсортированный по алфавиту.
  2. Реализовать поведение: При общании по .../dog/sortByIdDesc выводить список всех собак из БД, отсортированный по id в обратном порядке
  3. Реализовать поведение: При общании по .../dog/sortByStatus выводить список всех собак из БД, отсортированный по статусу.
  4. Реализовать поведение: При общании по .../dog/sortByNameStatus выводить список всех собак из БД, отсортированный по имени, а если имена совпадают, то по статусу.

18.08.2020

  1. Inner classes
  2. Anonymous classes

Что почитать:

  1. Inner classes
  2. Nested classes
  3. Anonymous classes

13.08.2020

  1. Порядок действий при создании объекта
  2. static keyword

Что почитать:

  1. Порядок действий при создании объекта
  2. static keyword

04.08.2020-06.08.2020

  1. Полиморфизм

Что почитать:

  1. Небольшое видео о полиморфизме
  2. Пример использования полиморфизма

Рекомендуется выполнить:

  1. Обновить свою ветку запустить
  2. Посмотреть на com.example.shelter.example.PolymorphismExample.

28.07.2020

  1. Наследование

Что почитать:

  1. Небольшое видео о наследовании
  2. Общая статья
  3. Разные способы наследования с примерами
  4. Правила наследования

25.07.2020

  1. Инкапсуляция
  2. Пару слов о сериализации

Что почитать:

  1. Небольшое видео об инкапсуляции
  2. getters/setters
  3. Более общая статья с примерами
  4. Факультативно сериализация

14.07.2020-16.07.2020

Сделали приложение, которое можно запустить в браузере http://localhost:7000/

Что почитать:

  1. Javelin documentation
  2. Javelin example
  3. Javelin передача параметров в строке браузера
  4. Функциональный интерфейс

Рекомендуется выполнить:

  1. При вызове /dogs/full возвращать всю информацию обо всех собаказ из БД
  2. При вызове /statuses возвращать список всех возможных статусов для собак(не ходить в БД)
  3. При вызове строки /statuses/{статус какой-то из DogStatus} - выводить список собак с таким статусом. Постараться создать новый Handler
  4. При вызове строки /statuses/statistics вывести строку в которой перечисленны все статусы DogStatus в формате "статус такой-то" used "столько-то раз;......"

08.07.2020

Вспомнили и применили на практике интерфейсы.

Что почитать:

  1. Правила именования переменных, констант, классов, интерфейсов, перечислений, пакетов в Java
  2. Интерфейсы
  3. What is Interface in Java with Example

Рекомендуется выполнить:

  1. Создать класс в пакете com.example.shelter.db.dogs.update
  2. Имплементировать интерфейс DogUpdateDataAccess для созданного класса
  3. Реализовать методы

30.06.2020-02.07.2020

Что было:

  1. Реализовали возможность добавлять данные в БД. Statement/Prepared statement

Что почитать:

  1. Try with resources
  2. Closing Database Connections in Java
  3. Исключения в Java

Рекомендуется выполнить:

реализовать и проверить метод com.example.shelter.db.DogInsertDataAccess.addNewDogs(List dogs)

23.06.2020

Что было:

  • Собрали и запустили проект используя Gradle.
  • JDBC
  • Получили данные из внешней БД

Что почитать:

  1. JDBC или с чего всё начинается
  2. Факультативно Инструменты для сборки проекта, включая абзац про Gradle

Рекомендуется выполнить:

Собрать и запустить проект коммандой dog-shelter-example:tasks:application:run Реализовать методы:

  1. ShelterDataAccess.getAllDogNames()
  2. ShelterDataAccess.getUniqueDogNames()
  3. ShelterDataAccess.getAllDogs()

16.06.2020

Что почитать:

  1. Что такое ООП
  2. Инкапсуляция
  3. Наследование
  4. Полиморфизм

09.06.2020

Что было:

Отвели ветки от master branch. Попробовали merge.

Что почитать:

  1. https://www.jetbrains.com/help/idea/apply-changes-from-one-branch-to-another.html Только про merge
  2. https://www.jetbrains.com/help/idea/resolving-conflicts.html Resolve conflicts

Рекомендуется выполнить:

  1. Создать именную ветку от master branch, если такой еще нет. Сделать merge master branch в свою локальную ветку, если ветка была.
  2. Дополнительно: Добавить новое поле в объект Dog, - дата появления(java.time.LocalDateTime), статус('Принят', 'Не принят', 'Выписан'). Переопределить метод toString с учетом этого поля. Заполнять поле из консоли или если пользователь не заполняет значения - сохранять текущее время ( https://www.baeldung.com/java-8-date-time-intro ) ( https://www.javatpoint.com/java-localdate )
  3. Дополнительно: Добавить новое поле в объект Dog - статус('Принят', 'Не принят', 'Выписан'). Переопределить метод toString с учетом этого поля. Заполнять поле из консоли или если пользователь не заполняет значения - сохранить статус 'Принят'. Статус может быть как строкой, так и структурой данных Enum. Подробнее об Enum: ( https://www.youtube.com/watch?v=GOzNp1YAm5w ) ( https://www.baeldung.com/a-guide-to-java-enums)

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  

Languages