From 53dc05e85b31caefda67e84afeb9a50ce9590a05 Mon Sep 17 00:00:00 2001 From: stvort Date: Fri, 17 Nov 2023 01:38:26 +0400 Subject: [PATCH] templates updated --- templates/hw01-xml-config/pom.xml | 4 +- .../{AppConfig.java => AppProperties.java} | 2 +- .../java/ru/otus/hw/dao/CsvQuestionDao.java | 1 + templates/hw02-annotation-config/pom.xml | 4 +- .../{AppConfig.java => AppProperties.java} | 4 +- .../java/ru/otus/hw/dao/CsvQuestionDao.java | 1 + templates/hw03-spring-boot/pom.xml | 2 +- .../{AppConfig.java => AppProperties.java} | 3 +- .../java/ru/otus/hw/dao/CsvQuestionDao.java | 1 + .../ru/otus/hw/commands/BookCommands.java | 52 ------- .../ru/otus/hw/converters/BookConverter.java | 27 ---- .../src/main/java/ru/otus/hw/models/Book.java | 20 --- .../hw/repositories/AuthorRepositoryJdbc.java | 33 ----- .../hw/repositories/BookRepositoryJdbc.java | 112 --------------- .../otus/hw/repositories/GenreRepository.java | 11 -- .../hw/repositories/GenreRepositoryJdbc.java | 32 ----- .../java/ru/otus/hw/services/BookService.java | 18 --- .../ru/otus/hw/services/BookServiceImpl.java | 60 -------- .../src/main/resources/data.sql | 14 -- .../src/main/resources/schema.sql | 24 ---- .../repositories/BookRepositoryJdbcTest.java | 134 ------------------ .../src/test/resources/data.sql | 14 -- .../.gitignore | 1 - .../pom.xml | 2 +- .../src/main/java/ru/otus/hw/Application.java | 0 .../ru/otus/hw/commands/AuthorCommands.java | 25 ---- .../ru/otus/hw/commands/GenreCommands.java | 25 ---- .../otus/hw/converters/AuthorConverter.java | 11 -- .../ru/otus/hw/converters/GenreConverter.java | 11 -- .../exceptions/EntityNotFoundException.java | 7 - .../main/java/ru/otus/hw/models/Author.java | 14 -- .../main/java/ru/otus/hw/models/Genre.java | 14 -- .../hw/repositories/AuthorRepository.java | 12 -- .../otus/hw/repositories/BookRepository.java | 16 --- .../ru/otus/hw/services/AuthorService.java | 9 -- .../otus/hw/services/AuthorServiceImpl.java | 19 --- .../ru/otus/hw/services/GenreService.java | 9 -- .../ru/otus/hw/services/GenreServiceImpl.java | 19 --- .../src/main/resources/application.yml | 8 -- .../src/test/resources/application.yml | 8 -- .../.gitignore | 1 - .../pom.xml | 2 +- .../src/main/java/ru/otus/hw/Application.java | 0 .../ru/otus/hw/commands/AuthorCommands.java | 0 .../ru/otus/hw/commands/BookCommands.java | 3 + .../ru/otus/hw/commands/GenreCommands.java | 0 .../otus/hw/converters/AuthorConverter.java | 0 .../ru/otus/hw/converters/BookConverter.java | 0 .../ru/otus/hw/converters/GenreConverter.java | 0 .../exceptions/EntityNotFoundException.java | 0 .../main/java/ru/otus/hw/models/Author.java | 0 .../src/main/java/ru/otus/hw/models/Book.java | 0 .../main/java/ru/otus/hw/models/Genre.java | 0 .../hw/repositories/AuthorRepository.java | 0 .../otus/hw/repositories/BookRepository.java | 0 .../otus/hw/repositories/GenreRepository.java | 0 .../repositories/JdbcAuthorRepository.java} | 2 +- .../hw/repositories/JdbcBookRepository.java} | 3 +- .../hw/repositories/JdbcGenreRepository.java} | 2 +- .../ru/otus/hw/services/AuthorService.java | 0 .../otus/hw/services/AuthorServiceImpl.java | 0 .../java/ru/otus/hw/services/BookService.java | 0 .../ru/otus/hw/services/BookServiceImpl.java | 0 .../ru/otus/hw/services/GenreService.java | 0 .../ru/otus/hw/services/GenreServiceImpl.java | 0 .../src/main/resources/application.yml | 0 .../src/main/resources/data.sql | 0 .../src/main/resources/schema.sql | 0 .../repositories/JdbcBookRepositoryTest.java} | 6 +- .../src/test/resources/application.yml | 0 .../src/test/resources/data.sql | 0 71 files changed, 25 insertions(+), 777 deletions(-) rename templates/hw01-xml-config/src/main/java/ru/otus/hw/config/{AppConfig.java => AppProperties.java} (75%) rename templates/hw02-annotation-config/src/main/java/ru/otus/hw/config/{AppConfig.java => AppProperties.java} (79%) rename templates/hw03-spring-boot/src/main/java/ru/otus/hw/config/{AppConfig.java => AppProperties.java} (87%) delete mode 100644 templates/hw05-jdbc-hard-template/src/main/java/ru/otus/hw/commands/BookCommands.java delete mode 100644 templates/hw05-jdbc-hard-template/src/main/java/ru/otus/hw/converters/BookConverter.java delete mode 100644 templates/hw05-jdbc-hard-template/src/main/java/ru/otus/hw/models/Book.java delete mode 100644 templates/hw05-jdbc-hard-template/src/main/java/ru/otus/hw/repositories/AuthorRepositoryJdbc.java delete mode 100644 templates/hw05-jdbc-hard-template/src/main/java/ru/otus/hw/repositories/BookRepositoryJdbc.java delete mode 100644 templates/hw05-jdbc-hard-template/src/main/java/ru/otus/hw/repositories/GenreRepository.java delete mode 100644 templates/hw05-jdbc-hard-template/src/main/java/ru/otus/hw/repositories/GenreRepositoryJdbc.java delete mode 100644 templates/hw05-jdbc-hard-template/src/main/java/ru/otus/hw/services/BookService.java delete mode 100644 templates/hw05-jdbc-hard-template/src/main/java/ru/otus/hw/services/BookServiceImpl.java delete mode 100644 templates/hw05-jdbc-hard-template/src/main/resources/data.sql delete mode 100644 templates/hw05-jdbc-hard-template/src/main/resources/schema.sql delete mode 100644 templates/hw05-jdbc-hard-template/src/test/java/ru/otus/hw/repositories/BookRepositoryJdbcTest.java delete mode 100644 templates/hw05-jdbc-hard-template/src/test/resources/data.sql rename templates/{hw05-jdbc-simple-template => hw05-jdbc-hard}/.gitignore (94%) rename templates/{hw05-jdbc-hard-template => hw05-jdbc-hard}/pom.xml (99%) rename templates/{hw05-jdbc-hard-template => hw05-jdbc-hard}/src/main/java/ru/otus/hw/Application.java (100%) delete mode 100644 templates/hw05-jdbc-simple-template/src/main/java/ru/otus/hw/commands/AuthorCommands.java delete mode 100644 templates/hw05-jdbc-simple-template/src/main/java/ru/otus/hw/commands/GenreCommands.java delete mode 100644 templates/hw05-jdbc-simple-template/src/main/java/ru/otus/hw/converters/AuthorConverter.java delete mode 100644 templates/hw05-jdbc-simple-template/src/main/java/ru/otus/hw/converters/GenreConverter.java delete mode 100644 templates/hw05-jdbc-simple-template/src/main/java/ru/otus/hw/exceptions/EntityNotFoundException.java delete mode 100644 templates/hw05-jdbc-simple-template/src/main/java/ru/otus/hw/models/Author.java delete mode 100644 templates/hw05-jdbc-simple-template/src/main/java/ru/otus/hw/models/Genre.java delete mode 100644 templates/hw05-jdbc-simple-template/src/main/java/ru/otus/hw/repositories/AuthorRepository.java delete mode 100644 templates/hw05-jdbc-simple-template/src/main/java/ru/otus/hw/repositories/BookRepository.java delete mode 100644 templates/hw05-jdbc-simple-template/src/main/java/ru/otus/hw/services/AuthorService.java delete mode 100644 templates/hw05-jdbc-simple-template/src/main/java/ru/otus/hw/services/AuthorServiceImpl.java delete mode 100644 templates/hw05-jdbc-simple-template/src/main/java/ru/otus/hw/services/GenreService.java delete mode 100644 templates/hw05-jdbc-simple-template/src/main/java/ru/otus/hw/services/GenreServiceImpl.java delete mode 100644 templates/hw05-jdbc-simple-template/src/main/resources/application.yml delete mode 100644 templates/hw05-jdbc-simple-template/src/test/resources/application.yml rename templates/{hw05-jdbc-hard-template => hw05-jdbc-simple}/.gitignore (94%) rename templates/{hw05-jdbc-simple-template => hw05-jdbc-simple}/pom.xml (99%) rename templates/{hw05-jdbc-simple-template => hw05-jdbc-simple}/src/main/java/ru/otus/hw/Application.java (100%) rename templates/{hw05-jdbc-hard-template => hw05-jdbc-simple}/src/main/java/ru/otus/hw/commands/AuthorCommands.java (100%) rename templates/{hw05-jdbc-simple-template => hw05-jdbc-simple}/src/main/java/ru/otus/hw/commands/BookCommands.java (91%) rename templates/{hw05-jdbc-hard-template => hw05-jdbc-simple}/src/main/java/ru/otus/hw/commands/GenreCommands.java (100%) rename templates/{hw05-jdbc-hard-template => hw05-jdbc-simple}/src/main/java/ru/otus/hw/converters/AuthorConverter.java (100%) rename templates/{hw05-jdbc-simple-template => hw05-jdbc-simple}/src/main/java/ru/otus/hw/converters/BookConverter.java (100%) rename templates/{hw05-jdbc-hard-template => hw05-jdbc-simple}/src/main/java/ru/otus/hw/converters/GenreConverter.java (100%) rename templates/{hw05-jdbc-hard-template => hw05-jdbc-simple}/src/main/java/ru/otus/hw/exceptions/EntityNotFoundException.java (100%) rename templates/{hw05-jdbc-hard-template => hw05-jdbc-simple}/src/main/java/ru/otus/hw/models/Author.java (100%) rename templates/{hw05-jdbc-simple-template => hw05-jdbc-simple}/src/main/java/ru/otus/hw/models/Book.java (100%) rename templates/{hw05-jdbc-hard-template => hw05-jdbc-simple}/src/main/java/ru/otus/hw/models/Genre.java (100%) rename templates/{hw05-jdbc-hard-template => hw05-jdbc-simple}/src/main/java/ru/otus/hw/repositories/AuthorRepository.java (100%) rename templates/{hw05-jdbc-hard-template => hw05-jdbc-simple}/src/main/java/ru/otus/hw/repositories/BookRepository.java (100%) rename templates/{hw05-jdbc-simple-template => hw05-jdbc-simple}/src/main/java/ru/otus/hw/repositories/GenreRepository.java (100%) rename templates/{hw05-jdbc-simple-template/src/main/java/ru/otus/hw/repositories/AuthorRepositoryJdbc.java => hw05-jdbc-simple/src/main/java/ru/otus/hw/repositories/JdbcAuthorRepository.java} (91%) rename templates/{hw05-jdbc-simple-template/src/main/java/ru/otus/hw/repositories/BookRepositoryJdbc.java => hw05-jdbc-simple/src/main/java/ru/otus/hw/repositories/JdbcBookRepository.java} (87%) rename templates/{hw05-jdbc-simple-template/src/main/java/ru/otus/hw/repositories/GenreRepositoryJdbc.java => hw05-jdbc-simple/src/main/java/ru/otus/hw/repositories/JdbcGenreRepository.java} (91%) rename templates/{hw05-jdbc-hard-template => hw05-jdbc-simple}/src/main/java/ru/otus/hw/services/AuthorService.java (100%) rename templates/{hw05-jdbc-hard-template => hw05-jdbc-simple}/src/main/java/ru/otus/hw/services/AuthorServiceImpl.java (100%) rename templates/{hw05-jdbc-simple-template => hw05-jdbc-simple}/src/main/java/ru/otus/hw/services/BookService.java (100%) rename templates/{hw05-jdbc-simple-template => hw05-jdbc-simple}/src/main/java/ru/otus/hw/services/BookServiceImpl.java (100%) rename templates/{hw05-jdbc-hard-template => hw05-jdbc-simple}/src/main/java/ru/otus/hw/services/GenreService.java (100%) rename templates/{hw05-jdbc-hard-template => hw05-jdbc-simple}/src/main/java/ru/otus/hw/services/GenreServiceImpl.java (100%) rename templates/{hw05-jdbc-hard-template => hw05-jdbc-simple}/src/main/resources/application.yml (100%) rename templates/{hw05-jdbc-simple-template => hw05-jdbc-simple}/src/main/resources/data.sql (100%) rename templates/{hw05-jdbc-simple-template => hw05-jdbc-simple}/src/main/resources/schema.sql (100%) rename templates/{hw05-jdbc-simple-template/src/test/java/ru/otus/hw/repositories/BookRepositoryJdbcTest.java => hw05-jdbc-simple/src/test/java/ru/otus/hw/repositories/JdbcBookRepositoryTest.java} (96%) rename templates/{hw05-jdbc-hard-template => hw05-jdbc-simple}/src/test/resources/application.yml (100%) rename templates/{hw05-jdbc-simple-template => hw05-jdbc-simple}/src/test/resources/data.sql (100%) diff --git a/templates/hw01-xml-config/pom.xml b/templates/hw01-xml-config/pom.xml index a16f0635..cd2909ec 100644 --- a/templates/hw01-xml-config/pom.xml +++ b/templates/hw01-xml-config/pom.xml @@ -13,12 +13,12 @@ 17 17 UTF-8 - 6.0.12 + 6.0.13 5.8 5.10.0 5.4.0 3.24.2 - 1.18.28 + 1.18.30 3.2.2 10.11.0 diff --git a/templates/hw01-xml-config/src/main/java/ru/otus/hw/config/AppConfig.java b/templates/hw01-xml-config/src/main/java/ru/otus/hw/config/AppProperties.java similarity index 75% rename from templates/hw01-xml-config/src/main/java/ru/otus/hw/config/AppConfig.java rename to templates/hw01-xml-config/src/main/java/ru/otus/hw/config/AppProperties.java index def57dd3..08f8f182 100644 --- a/templates/hw01-xml-config/src/main/java/ru/otus/hw/config/AppConfig.java +++ b/templates/hw01-xml-config/src/main/java/ru/otus/hw/config/AppProperties.java @@ -5,7 +5,7 @@ import lombok.Data; @AllArgsConstructor @Data -public class AppConfig implements TestFileNameProvider { +public class AppProperties implements TestFileNameProvider { private String testFileName; diff --git a/templates/hw01-xml-config/src/main/java/ru/otus/hw/dao/CsvQuestionDao.java b/templates/hw01-xml-config/src/main/java/ru/otus/hw/dao/CsvQuestionDao.java index 3941a647..b77547f3 100644 --- a/templates/hw01-xml-config/src/main/java/ru/otus/hw/dao/CsvQuestionDao.java +++ b/templates/hw01-xml-config/src/main/java/ru/otus/hw/dao/CsvQuestionDao.java @@ -16,6 +16,7 @@ public class CsvQuestionDao implements QuestionDao { // Использовать CsvToBean // https://opencsv.sourceforge.net/#collection_based_bean_fields_one_to_many_mappings // Использовать QuestionReadException + // Про ресурсы: https://mkyong.com/java/java-read-a-file-from-resources-folder/ return new ArrayList<>(); } diff --git a/templates/hw02-annotation-config/pom.xml b/templates/hw02-annotation-config/pom.xml index c99477bc..8faef982 100644 --- a/templates/hw02-annotation-config/pom.xml +++ b/templates/hw02-annotation-config/pom.xml @@ -13,12 +13,12 @@ 17 17 UTF-8 - 6.0.12 + 6.0.13 5.8 5.10.0 5.4.0 3.24.2 - 1.18.28 + 1.18.30 3.2.2 10.11.0 diff --git a/templates/hw02-annotation-config/src/main/java/ru/otus/hw/config/AppConfig.java b/templates/hw02-annotation-config/src/main/java/ru/otus/hw/config/AppProperties.java similarity index 79% rename from templates/hw02-annotation-config/src/main/java/ru/otus/hw/config/AppConfig.java rename to templates/hw02-annotation-config/src/main/java/ru/otus/hw/config/AppProperties.java index 97457488..6ff25eba 100644 --- a/templates/hw02-annotation-config/src/main/java/ru/otus/hw/config/AppConfig.java +++ b/templates/hw02-annotation-config/src/main/java/ru/otus/hw/config/AppProperties.java @@ -1,8 +1,10 @@ package ru.otus.hw.config; +import lombok.Setter; import org.springframework.beans.factory.annotation.Value; -public class AppConfig implements TestConfig, TestFileNameProvider { +@Setter +public class AppProperties implements TestConfig, TestFileNameProvider { // внедрить свойство из application.properties private int rightAnswersCountToPass; diff --git a/templates/hw02-annotation-config/src/main/java/ru/otus/hw/dao/CsvQuestionDao.java b/templates/hw02-annotation-config/src/main/java/ru/otus/hw/dao/CsvQuestionDao.java index 3941a647..b77547f3 100644 --- a/templates/hw02-annotation-config/src/main/java/ru/otus/hw/dao/CsvQuestionDao.java +++ b/templates/hw02-annotation-config/src/main/java/ru/otus/hw/dao/CsvQuestionDao.java @@ -16,6 +16,7 @@ public class CsvQuestionDao implements QuestionDao { // Использовать CsvToBean // https://opencsv.sourceforge.net/#collection_based_bean_fields_one_to_many_mappings // Использовать QuestionReadException + // Про ресурсы: https://mkyong.com/java/java-read-a-file-from-resources-folder/ return new ArrayList<>(); } diff --git a/templates/hw03-spring-boot/pom.xml b/templates/hw03-spring-boot/pom.xml index dc0ff1ef..6647c64a 100644 --- a/templates/hw03-spring-boot/pom.xml +++ b/templates/hw03-spring-boot/pom.xml @@ -20,7 +20,7 @@ 17 UTF-8 5.8 - 1.18.28 + 1.18.30 3.2.2 10.11.0 diff --git a/templates/hw03-spring-boot/src/main/java/ru/otus/hw/config/AppConfig.java b/templates/hw03-spring-boot/src/main/java/ru/otus/hw/config/AppProperties.java similarity index 87% rename from templates/hw03-spring-boot/src/main/java/ru/otus/hw/config/AppConfig.java rename to templates/hw03-spring-boot/src/main/java/ru/otus/hw/config/AppProperties.java index c202024d..4ffaf687 100644 --- a/templates/hw03-spring-boot/src/main/java/ru/otus/hw/config/AppConfig.java +++ b/templates/hw03-spring-boot/src/main/java/ru/otus/hw/config/AppProperties.java @@ -9,9 +9,8 @@ import java.util.Map; @Setter // Использовать @ConfigurationProperties. // Сейчас класс соответствует файлу настроек. Чтобы они сюда отобразились нужно только правильно разместить аннотации -public class AppConfig implements TestConfig, TestFileNameProvider, LocaleConfig { +public class AppProperties implements TestConfig, TestFileNameProvider, LocaleConfig { - @Getter private int rightAnswersCountToPass; @Getter diff --git a/templates/hw03-spring-boot/src/main/java/ru/otus/hw/dao/CsvQuestionDao.java b/templates/hw03-spring-boot/src/main/java/ru/otus/hw/dao/CsvQuestionDao.java index 9551a8b7..f940d8ca 100644 --- a/templates/hw03-spring-boot/src/main/java/ru/otus/hw/dao/CsvQuestionDao.java +++ b/templates/hw03-spring-boot/src/main/java/ru/otus/hw/dao/CsvQuestionDao.java @@ -18,6 +18,7 @@ public class CsvQuestionDao implements QuestionDao { // Использовать CsvToBean // https://opencsv.sourceforge.net/#collection_based_bean_fields_one_to_many_mappings // Использовать QuestionReadException + // Про ресурсы: https://mkyong.com/java/java-read-a-file-from-resources-folder/ return new ArrayList<>(); } diff --git a/templates/hw05-jdbc-hard-template/src/main/java/ru/otus/hw/commands/BookCommands.java b/templates/hw05-jdbc-hard-template/src/main/java/ru/otus/hw/commands/BookCommands.java deleted file mode 100644 index 0716dd6a..00000000 --- a/templates/hw05-jdbc-hard-template/src/main/java/ru/otus/hw/commands/BookCommands.java +++ /dev/null @@ -1,52 +0,0 @@ -package ru.otus.hw.commands; - -import lombok.RequiredArgsConstructor; -import org.springframework.shell.standard.ShellComponent; -import org.springframework.shell.standard.ShellMethod; -import ru.otus.hw.converters.BookConverter; -import ru.otus.hw.services.BookService; - -import java.util.List; -import java.util.stream.Collectors; - -@RequiredArgsConstructor -@ShellComponent -public class BookCommands { - - private final BookService bookService; - - private final BookConverter bookConverter; - - @ShellMethod(value = "Find all books", key = "ab") - public String findAllBooks() { - return bookService.findAll().stream() - .map(bookConverter::bookToString) - .collect(Collectors.joining("," + System.lineSeparator())); - } - - @ShellMethod(value = "Find book by id", key = "bbid") - public String findBookById(long id) { - return bookService.findById(id) - .map(bookConverter::bookToString) - .orElse("Book with id %d not found".formatted(id)); - } - - //bins aaaaaaaaaaaaa 1 1,6//bins aaaaaaaaaaaaa 1 1,6 - @ShellMethod(value = "Insert book", key = "bins") - public String insertBook(String title, long authorId, List genresIds) { - var savedBook = bookService.insert(title, authorId, genresIds); - return bookConverter.bookToString(savedBook); - } - - //bupd 4 dfasdfasdfasd 3 2,5 - @ShellMethod(value = "Update book", key = "bupd") - public String updateBook(long id, String title, long authorId, List genresIds) { - var savedBook = bookService.update(id, title, authorId, genresIds); - return bookConverter.bookToString(savedBook); - } - - @ShellMethod(value = "Delete book by id", key = "bdel") - public void updateBook(long id) { - bookService.deleteById(id); - } -} diff --git a/templates/hw05-jdbc-hard-template/src/main/java/ru/otus/hw/converters/BookConverter.java b/templates/hw05-jdbc-hard-template/src/main/java/ru/otus/hw/converters/BookConverter.java deleted file mode 100644 index c174791d..00000000 --- a/templates/hw05-jdbc-hard-template/src/main/java/ru/otus/hw/converters/BookConverter.java +++ /dev/null @@ -1,27 +0,0 @@ -package ru.otus.hw.converters; - -import lombok.RequiredArgsConstructor; -import org.springframework.stereotype.Component; -import ru.otus.hw.models.Book; - -import java.util.stream.Collectors; - -@RequiredArgsConstructor -@Component -public class BookConverter { - private final AuthorConverter authorConverter; - - private final GenreConverter genreConverter; - - public String bookToString(Book book) { - var genresString = book.getGenres().stream() - .map(genreConverter::genreToString) - .map("{%s}"::formatted) - .collect(Collectors.joining(", ")); - return "Id: %d, title: %s, author: {%s}, genres: [%s]".formatted( - book.getId(), - book.getTitle(), - authorConverter.authorToString(book.getAuthor()), - genresString); - } -} diff --git a/templates/hw05-jdbc-hard-template/src/main/java/ru/otus/hw/models/Book.java b/templates/hw05-jdbc-hard-template/src/main/java/ru/otus/hw/models/Book.java deleted file mode 100644 index c71d15e1..00000000 --- a/templates/hw05-jdbc-hard-template/src/main/java/ru/otus/hw/models/Book.java +++ /dev/null @@ -1,20 +0,0 @@ -package ru.otus.hw.models; - -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; - -import java.util.List; - -@Data -@AllArgsConstructor -@NoArgsConstructor -public class Book { - private long id; - - private String title; - - private Author author; - - private List genres; -} diff --git a/templates/hw05-jdbc-hard-template/src/main/java/ru/otus/hw/repositories/AuthorRepositoryJdbc.java b/templates/hw05-jdbc-hard-template/src/main/java/ru/otus/hw/repositories/AuthorRepositoryJdbc.java deleted file mode 100644 index b12c0c2c..00000000 --- a/templates/hw05-jdbc-hard-template/src/main/java/ru/otus/hw/repositories/AuthorRepositoryJdbc.java +++ /dev/null @@ -1,33 +0,0 @@ -package ru.otus.hw.repositories; - -import org.springframework.jdbc.core.RowMapper; -import org.springframework.stereotype.Repository; -import ru.otus.hw.models.Author; - -import java.sql.ResultSet; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.List; -import java.util.Optional; - -@Repository -public class AuthorRepositoryJdbc implements AuthorRepository { - - @Override - public List findAll() { - return new ArrayList<>(); - } - - @Override - public Optional findById(long id) { - return Optional.empty(); - } - - private static class AuthorRowMapper implements RowMapper { - - @Override - public Author mapRow(ResultSet rs, int i) throws SQLException { - return null; - } - } -} diff --git a/templates/hw05-jdbc-hard-template/src/main/java/ru/otus/hw/repositories/BookRepositoryJdbc.java b/templates/hw05-jdbc-hard-template/src/main/java/ru/otus/hw/repositories/BookRepositoryJdbc.java deleted file mode 100644 index bb99e66e..00000000 --- a/templates/hw05-jdbc-hard-template/src/main/java/ru/otus/hw/repositories/BookRepositoryJdbc.java +++ /dev/null @@ -1,112 +0,0 @@ -package ru.otus.hw.repositories; - -import lombok.RequiredArgsConstructor; -import org.springframework.dao.DataAccessException; -import org.springframework.jdbc.core.ResultSetExtractor; -import org.springframework.jdbc.core.RowMapper; -import org.springframework.jdbc.support.GeneratedKeyHolder; -import org.springframework.stereotype.Repository; -import ru.otus.hw.models.Book; -import ru.otus.hw.models.Genre; - -import java.sql.ResultSet; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.List; -import java.util.Optional; - -@Repository -@RequiredArgsConstructor -public class BookRepositoryJdbc implements BookRepository { - - private final GenreRepository genreRepository; - - @Override - public Optional findById(long id) { - return Optional.empty(); - } - - @Override - public List findAll() { - var genres = genreRepository.findAll(); - var relations = getAllGenreRelations(); - var books = getAllBooksWithoutGenres(); - mergeBooksInfo(books, genres, relations); - return books; - } - - @Override - public Book save(Book book) { - if (book.getId() == 0) { - return insert(book); - } - return update(book); - } - - @Override - public void deleteById(long id) { - //... - } - - private List getAllBooksWithoutGenres() { - return new ArrayList<>(); - } - - private List getAllGenreRelations() { - return new ArrayList<>(); - } - - private void mergeBooksInfo(List booksWithoutGenres, List genres, - List relations) { - // Добавить книгам (booksWithoutGenres) жанры (genres) в соответствии со связями (relations) - } - - private Book insert(Book book) { - var keyHolder = new GeneratedKeyHolder(); - - //... - - //noinspection DataFlowIssue - book.setId(keyHolder.getKeyAs(Long.class)); - batchInsertGenresRelationsFor(book); - return book; - } - - private Book update(Book book) { - //... - - removeGenresRelationsFor(book); - batchInsertGenresRelationsFor(book); - - return book; - } - - private void batchInsertGenresRelationsFor(Book book) { - // batchUpdate - } - - private void removeGenresRelationsFor(Book book) { - //... - } - - private static class BookRowMapper implements RowMapper { - - @Override - public Book mapRow(ResultSet rs, int rowNum) throws SQLException { - return null; - } - } - - @SuppressWarnings("ClassCanBeRecord") - @RequiredArgsConstructor - private static class BookResultSetExtractor implements ResultSetExtractor> { - - @Override - public List extractData(ResultSet rs) throws SQLException, DataAccessException { - return new ArrayList<>(); - } - } - - private record BookGenreRelation(long bookId, long genreId) { - } -} diff --git a/templates/hw05-jdbc-hard-template/src/main/java/ru/otus/hw/repositories/GenreRepository.java b/templates/hw05-jdbc-hard-template/src/main/java/ru/otus/hw/repositories/GenreRepository.java deleted file mode 100644 index 02e87b10..00000000 --- a/templates/hw05-jdbc-hard-template/src/main/java/ru/otus/hw/repositories/GenreRepository.java +++ /dev/null @@ -1,11 +0,0 @@ -package ru.otus.hw.repositories; - -import ru.otus.hw.models.Genre; - -import java.util.List; - -public interface GenreRepository { - List findAll(); - - List findAllByIds(List ids); -} diff --git a/templates/hw05-jdbc-hard-template/src/main/java/ru/otus/hw/repositories/GenreRepositoryJdbc.java b/templates/hw05-jdbc-hard-template/src/main/java/ru/otus/hw/repositories/GenreRepositoryJdbc.java deleted file mode 100644 index e87daa58..00000000 --- a/templates/hw05-jdbc-hard-template/src/main/java/ru/otus/hw/repositories/GenreRepositoryJdbc.java +++ /dev/null @@ -1,32 +0,0 @@ -package ru.otus.hw.repositories; - -import org.springframework.jdbc.core.RowMapper; -import org.springframework.stereotype.Repository; -import ru.otus.hw.models.Genre; - -import java.sql.ResultSet; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.List; - -@Repository -public class GenreRepositoryJdbc implements GenreRepository { - - @Override - public List findAll() { - return new ArrayList<>(); - } - - @Override - public List findAllByIds(List ids) { - return new ArrayList<>(); - } - - private static class GnreRowMapper implements RowMapper { - - @Override - public Genre mapRow(ResultSet rs, int i) throws SQLException { - return null; - } - } -} diff --git a/templates/hw05-jdbc-hard-template/src/main/java/ru/otus/hw/services/BookService.java b/templates/hw05-jdbc-hard-template/src/main/java/ru/otus/hw/services/BookService.java deleted file mode 100644 index 8b37a4b0..00000000 --- a/templates/hw05-jdbc-hard-template/src/main/java/ru/otus/hw/services/BookService.java +++ /dev/null @@ -1,18 +0,0 @@ -package ru.otus.hw.services; - -import ru.otus.hw.models.Book; - -import java.util.List; -import java.util.Optional; - -public interface BookService { - Optional findById(long id); - - List findAll(); - - Book insert(String title, long authorId, List genresIds); - - Book update(long id, String title, long authorId, List genresIds); - - void deleteById(long id); -} diff --git a/templates/hw05-jdbc-hard-template/src/main/java/ru/otus/hw/services/BookServiceImpl.java b/templates/hw05-jdbc-hard-template/src/main/java/ru/otus/hw/services/BookServiceImpl.java deleted file mode 100644 index a6495210..00000000 --- a/templates/hw05-jdbc-hard-template/src/main/java/ru/otus/hw/services/BookServiceImpl.java +++ /dev/null @@ -1,60 +0,0 @@ -package ru.otus.hw.services; - -import lombok.RequiredArgsConstructor; -import org.springframework.stereotype.Service; -import ru.otus.hw.exceptions.EntityNotFoundException; -import ru.otus.hw.models.Book; -import ru.otus.hw.repositories.AuthorRepository; -import ru.otus.hw.repositories.BookRepository; -import ru.otus.hw.repositories.GenreRepository; - -import java.util.List; -import java.util.Optional; - -import static org.springframework.util.CollectionUtils.isEmpty; - -@RequiredArgsConstructor -@Service -public class BookServiceImpl implements BookService { - private final AuthorRepository authorRepository; - - private final GenreRepository genreRepository; - - private final BookRepository bookRepository; - - @Override - public Optional findById(long id) { - return bookRepository.findById(id); - } - - @Override - public List findAll() { - return bookRepository.findAll(); - } - - @Override - public Book insert(String title, long authorId, List genresIds) { - return save(0, title, authorId, genresIds); - } - - @Override - public Book update(long id, String title, long authorId, List genresIds) { - return save(id, title, authorId, genresIds); - } - - @Override - public void deleteById(long id) { - bookRepository.deleteById(id); - } - - private Book save(long id, String title, long authorId, List genresIds) { - var author = authorRepository.findById(authorId) - .orElseThrow(() -> new EntityNotFoundException("Author with id %d not found".formatted(authorId))); - var genres = genreRepository.findAllByIds(genresIds); - if (isEmpty(genres)) { - throw new EntityNotFoundException("Genres with ids %s not found".formatted(genresIds)); - } - var book = new Book(id, title, author, genres); - return bookRepository.save(book); - } -} diff --git a/templates/hw05-jdbc-hard-template/src/main/resources/data.sql b/templates/hw05-jdbc-hard-template/src/main/resources/data.sql deleted file mode 100644 index 3dd3a166..00000000 --- a/templates/hw05-jdbc-hard-template/src/main/resources/data.sql +++ /dev/null @@ -1,14 +0,0 @@ -insert into authors(full_name) -values ('Author_1'), ('Author_2'), ('Author_3'); - -insert into genres(name) -values ('Genre_1'), ('Genre_2'), ('Genre_3'), - ('Genre_4'), ('Genre_5'), ('Genre_6'); - -insert into books(title, author_id) -values ('BookTitle_1', 1), ('BookTitle_2', 2), ('BookTitle_3', 3); - -insert into books_genres(book_id, genre_id) -values (1, 1), (1, 2), - (2, 3), (2, 4), - (3, 5), (3, 6); diff --git a/templates/hw05-jdbc-hard-template/src/main/resources/schema.sql b/templates/hw05-jdbc-hard-template/src/main/resources/schema.sql deleted file mode 100644 index b085e18a..00000000 --- a/templates/hw05-jdbc-hard-template/src/main/resources/schema.sql +++ /dev/null @@ -1,24 +0,0 @@ -create table authors ( - id bigserial, - full_name varchar(255), - primary key (id) -); - -create table genres ( - id bigserial, - name varchar(255), - primary key (id) -); - -create table books ( - id bigserial, - title varchar(255), - author_id bigint references authors (id) on delete cascade, - primary key (id) -); - -create table books_genres ( - book_id bigint references books(id) on delete cascade, - genre_id bigint references genres(id) on delete cascade, - primary key (book_id, genre_id) -); \ No newline at end of file diff --git a/templates/hw05-jdbc-hard-template/src/test/java/ru/otus/hw/repositories/BookRepositoryJdbcTest.java b/templates/hw05-jdbc-hard-template/src/test/java/ru/otus/hw/repositories/BookRepositoryJdbcTest.java deleted file mode 100644 index a226d7ab..00000000 --- a/templates/hw05-jdbc-hard-template/src/test/java/ru/otus/hw/repositories/BookRepositoryJdbcTest.java +++ /dev/null @@ -1,134 +0,0 @@ -package ru.otus.hw.repositories; - -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; -import org.junit.jupiter.params.ParameterizedTest; -import org.junit.jupiter.params.provider.MethodSource; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.autoconfigure.jdbc.JdbcTest; -import org.springframework.context.annotation.Import; -import ru.otus.hw.models.Author; -import ru.otus.hw.models.Book; -import ru.otus.hw.models.Genre; - -import java.util.List; -import java.util.stream.IntStream; - -import static org.assertj.core.api.Assertions.assertThat; - -@DisplayName("Репозиторий на основе Jdbc для работы с книгами ") -@JdbcTest -@Import({BookRepositoryJdbc.class, GenreRepositoryJdbc.class}) -class BookRepositoryJdbcTest { - - @Autowired - private BookRepositoryJdbc repositoryJdbc; - - private List dbAuthors; - - private List dbGenres; - - private List dbBooks; - - @BeforeEach - void setUp() { - dbAuthors = getDbAuthors(); - dbGenres = getDbGenres(); - dbBooks = getDbBooks(dbAuthors, dbGenres); - } - - @DisplayName("должен загружать книгу по id") - @ParameterizedTest - @MethodSource("getDbBooks") - void shouldReturnCorrectBookById(Book expectedBook) { - var actualBook = repositoryJdbc.findById(expectedBook.getId()); - assertThat(actualBook).isPresent() - .get() - .isEqualTo(expectedBook); - } - - @DisplayName("должен загружать список всех книг") - @Test - void shouldReturnCorrectBooksList() { - var actualBooks = repositoryJdbc.findAll(); - var expectedBooks = dbBooks; - - assertThat(actualBooks).containsExactlyElementsOf(expectedBooks); - actualBooks.forEach(System.out::println); - } - - @DisplayName("должен сохранять новую книгу") - @Test - void shouldSaveNewBook() { - var expectedBook = new Book(0, "BookTitle_10500", dbAuthors.get(0), - List.of(dbGenres.get(0), dbGenres.get(2))); - var returnedBook = repositoryJdbc.save(expectedBook); - assertThat(returnedBook).isNotNull() - .matches(book -> book.getId() > 0) - .usingRecursiveComparison().ignoringExpectedNullFields().isEqualTo(expectedBook); - - assertThat(repositoryJdbc.findById(returnedBook.getId())) - .isPresent() - .get() - .isEqualTo(returnedBook); - } - - @DisplayName("должен сохранять измененную книгу") - @Test - void shouldSaveUpdatedBook() { - var expectedBook = new Book(1L, "BookTitle_10500", dbAuthors.get(2), - List.of(dbGenres.get(4), dbGenres.get(5))); - - assertThat(repositoryJdbc.findById(expectedBook.getId())) - .isPresent() - .get() - .isNotEqualTo(expectedBook); - - var returnedBook = repositoryJdbc.save(expectedBook); - assertThat(returnedBook).isNotNull() - .matches(book -> book.getId() > 0) - .usingRecursiveComparison().ignoringExpectedNullFields().isEqualTo(expectedBook); - - assertThat(repositoryJdbc.findById(returnedBook.getId())) - .isPresent() - .get() - .isEqualTo(returnedBook); - } - - @DisplayName("должен удалять книгу по id ") - @Test - void shouldDeleteBook() { - assertThat(repositoryJdbc.findById(1L)).isPresent(); - repositoryJdbc.deleteById(1L); - assertThat(repositoryJdbc.findById(1L)).isEmpty(); - } - - private static List getDbAuthors() { - return IntStream.range(1, 4).boxed() - .map(id -> new Author(id, "Author_" + id)) - .toList(); - } - - private static List getDbGenres() { - return IntStream.range(1, 7).boxed() - .map(id -> new Genre(id, "Genre_" + id)) - .toList(); - } - - private static List getDbBooks(List dbAuthors, List dbGenres) { - return IntStream.range(1, 4).boxed() - .map(id -> new Book(id, - "BookTitle_" + id, - dbAuthors.get(id - 1), - dbGenres.subList((id - 1) * 2, (id - 1) * 2 + 2) - )) - .toList(); - } - - private static List getDbBooks() { - var dbAuthors = getDbAuthors(); - var dbGenres = getDbGenres(); - return getDbBooks(dbAuthors, dbGenres); - } -} \ No newline at end of file diff --git a/templates/hw05-jdbc-hard-template/src/test/resources/data.sql b/templates/hw05-jdbc-hard-template/src/test/resources/data.sql deleted file mode 100644 index 3dd3a166..00000000 --- a/templates/hw05-jdbc-hard-template/src/test/resources/data.sql +++ /dev/null @@ -1,14 +0,0 @@ -insert into authors(full_name) -values ('Author_1'), ('Author_2'), ('Author_3'); - -insert into genres(name) -values ('Genre_1'), ('Genre_2'), ('Genre_3'), - ('Genre_4'), ('Genre_5'), ('Genre_6'); - -insert into books(title, author_id) -values ('BookTitle_1', 1), ('BookTitle_2', 2), ('BookTitle_3', 3); - -insert into books_genres(book_id, genre_id) -values (1, 1), (1, 2), - (2, 3), (2, 4), - (3, 5), (3, 6); diff --git a/templates/hw05-jdbc-simple-template/.gitignore b/templates/hw05-jdbc-hard/.gitignore similarity index 94% rename from templates/hw05-jdbc-simple-template/.gitignore rename to templates/hw05-jdbc-hard/.gitignore index b96df348..153c9335 100644 --- a/templates/hw05-jdbc-simple-template/.gitignore +++ b/templates/hw05-jdbc-hard/.gitignore @@ -16,7 +16,6 @@ HELP.md *.iws *.iml *.ipr -spring-shell.log ### NetBeans ### /nbproject/private/ diff --git a/templates/hw05-jdbc-hard-template/pom.xml b/templates/hw05-jdbc-hard/pom.xml similarity index 99% rename from templates/hw05-jdbc-hard-template/pom.xml rename to templates/hw05-jdbc-hard/pom.xml index 86f97d4b..9c467b1a 100644 --- a/templates/hw05-jdbc-hard-template/pom.xml +++ b/templates/hw05-jdbc-hard/pom.xml @@ -5,7 +5,7 @@ org.springframework.boot spring-boot-starter-parent - 3.1.2 + 3.1.5 diff --git a/templates/hw05-jdbc-hard-template/src/main/java/ru/otus/hw/Application.java b/templates/hw05-jdbc-hard/src/main/java/ru/otus/hw/Application.java similarity index 100% rename from templates/hw05-jdbc-hard-template/src/main/java/ru/otus/hw/Application.java rename to templates/hw05-jdbc-hard/src/main/java/ru/otus/hw/Application.java diff --git a/templates/hw05-jdbc-simple-template/src/main/java/ru/otus/hw/commands/AuthorCommands.java b/templates/hw05-jdbc-simple-template/src/main/java/ru/otus/hw/commands/AuthorCommands.java deleted file mode 100644 index c832e8ea..00000000 --- a/templates/hw05-jdbc-simple-template/src/main/java/ru/otus/hw/commands/AuthorCommands.java +++ /dev/null @@ -1,25 +0,0 @@ -package ru.otus.hw.commands; - -import lombok.RequiredArgsConstructor; -import org.springframework.shell.standard.ShellComponent; -import org.springframework.shell.standard.ShellMethod; -import ru.otus.hw.converters.AuthorConverter; -import ru.otus.hw.services.AuthorService; - -import java.util.stream.Collectors; - -@RequiredArgsConstructor -@ShellComponent -public class AuthorCommands { - - private final AuthorService authorService; - - private final AuthorConverter authorConverter; - - @ShellMethod(value = "Find all authors", key = "aa") - public String findAllAuthors() { - return authorService.findAll().stream() - .map(authorConverter::authorToString) - .collect(Collectors.joining("," + System.lineSeparator())); - } -} diff --git a/templates/hw05-jdbc-simple-template/src/main/java/ru/otus/hw/commands/GenreCommands.java b/templates/hw05-jdbc-simple-template/src/main/java/ru/otus/hw/commands/GenreCommands.java deleted file mode 100644 index 2b5705b8..00000000 --- a/templates/hw05-jdbc-simple-template/src/main/java/ru/otus/hw/commands/GenreCommands.java +++ /dev/null @@ -1,25 +0,0 @@ -package ru.otus.hw.commands; - -import lombok.RequiredArgsConstructor; -import org.springframework.shell.standard.ShellComponent; -import org.springframework.shell.standard.ShellMethod; -import ru.otus.hw.converters.GenreConverter; -import ru.otus.hw.services.GenreService; - -import java.util.stream.Collectors; - -@RequiredArgsConstructor -@ShellComponent -public class GenreCommands { - - private final GenreService genreService; - - private final GenreConverter genreConverter; - - @ShellMethod(value = "Find all genres", key = "ag") - public String findAllGenres() { - return genreService.findAll().stream() - .map(genreConverter::genreToString) - .collect(Collectors.joining("," + System.lineSeparator())); - } -} diff --git a/templates/hw05-jdbc-simple-template/src/main/java/ru/otus/hw/converters/AuthorConverter.java b/templates/hw05-jdbc-simple-template/src/main/java/ru/otus/hw/converters/AuthorConverter.java deleted file mode 100644 index 7d4d6c9c..00000000 --- a/templates/hw05-jdbc-simple-template/src/main/java/ru/otus/hw/converters/AuthorConverter.java +++ /dev/null @@ -1,11 +0,0 @@ -package ru.otus.hw.converters; - -import org.springframework.stereotype.Component; -import ru.otus.hw.models.Author; - -@Component -public class AuthorConverter { - public String authorToString(Author author) { - return "Id: %d, FullName: %s".formatted(author.getId(), author.getFullName()); - } -} diff --git a/templates/hw05-jdbc-simple-template/src/main/java/ru/otus/hw/converters/GenreConverter.java b/templates/hw05-jdbc-simple-template/src/main/java/ru/otus/hw/converters/GenreConverter.java deleted file mode 100644 index 92d500ca..00000000 --- a/templates/hw05-jdbc-simple-template/src/main/java/ru/otus/hw/converters/GenreConverter.java +++ /dev/null @@ -1,11 +0,0 @@ -package ru.otus.hw.converters; - -import org.springframework.stereotype.Component; -import ru.otus.hw.models.Genre; - -@Component -public class GenreConverter { - public String genreToString(Genre genre) { - return "Id: %d, Name: %s".formatted(genre.getId(), genre.getName()); - } -} diff --git a/templates/hw05-jdbc-simple-template/src/main/java/ru/otus/hw/exceptions/EntityNotFoundException.java b/templates/hw05-jdbc-simple-template/src/main/java/ru/otus/hw/exceptions/EntityNotFoundException.java deleted file mode 100644 index eb27d491..00000000 --- a/templates/hw05-jdbc-simple-template/src/main/java/ru/otus/hw/exceptions/EntityNotFoundException.java +++ /dev/null @@ -1,7 +0,0 @@ -package ru.otus.hw.exceptions; - -public class EntityNotFoundException extends RuntimeException { - public EntityNotFoundException(String message) { - super(message); - } -} diff --git a/templates/hw05-jdbc-simple-template/src/main/java/ru/otus/hw/models/Author.java b/templates/hw05-jdbc-simple-template/src/main/java/ru/otus/hw/models/Author.java deleted file mode 100644 index 7db6dbbe..00000000 --- a/templates/hw05-jdbc-simple-template/src/main/java/ru/otus/hw/models/Author.java +++ /dev/null @@ -1,14 +0,0 @@ -package ru.otus.hw.models; - -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; - -@Data -@AllArgsConstructor -@NoArgsConstructor -public class Author { - private long id; - - private String fullName; -} diff --git a/templates/hw05-jdbc-simple-template/src/main/java/ru/otus/hw/models/Genre.java b/templates/hw05-jdbc-simple-template/src/main/java/ru/otus/hw/models/Genre.java deleted file mode 100644 index e59ddab3..00000000 --- a/templates/hw05-jdbc-simple-template/src/main/java/ru/otus/hw/models/Genre.java +++ /dev/null @@ -1,14 +0,0 @@ -package ru.otus.hw.models; - -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; - -@Data -@AllArgsConstructor -@NoArgsConstructor -public class Genre { - private long id; - - private String name; -} diff --git a/templates/hw05-jdbc-simple-template/src/main/java/ru/otus/hw/repositories/AuthorRepository.java b/templates/hw05-jdbc-simple-template/src/main/java/ru/otus/hw/repositories/AuthorRepository.java deleted file mode 100644 index 743de402..00000000 --- a/templates/hw05-jdbc-simple-template/src/main/java/ru/otus/hw/repositories/AuthorRepository.java +++ /dev/null @@ -1,12 +0,0 @@ -package ru.otus.hw.repositories; - -import ru.otus.hw.models.Author; - -import java.util.List; -import java.util.Optional; - -public interface AuthorRepository { - List findAll(); - - Optional findById(long id); -} diff --git a/templates/hw05-jdbc-simple-template/src/main/java/ru/otus/hw/repositories/BookRepository.java b/templates/hw05-jdbc-simple-template/src/main/java/ru/otus/hw/repositories/BookRepository.java deleted file mode 100644 index ab507c33..00000000 --- a/templates/hw05-jdbc-simple-template/src/main/java/ru/otus/hw/repositories/BookRepository.java +++ /dev/null @@ -1,16 +0,0 @@ -package ru.otus.hw.repositories; - -import ru.otus.hw.models.Book; - -import java.util.List; -import java.util.Optional; - -public interface BookRepository { - Optional findById(long id); - - List findAll(); - - Book save(Book book); - - void deleteById(long id); -} diff --git a/templates/hw05-jdbc-simple-template/src/main/java/ru/otus/hw/services/AuthorService.java b/templates/hw05-jdbc-simple-template/src/main/java/ru/otus/hw/services/AuthorService.java deleted file mode 100644 index 87e92f8c..00000000 --- a/templates/hw05-jdbc-simple-template/src/main/java/ru/otus/hw/services/AuthorService.java +++ /dev/null @@ -1,9 +0,0 @@ -package ru.otus.hw.services; - -import ru.otus.hw.models.Author; - -import java.util.List; - -public interface AuthorService { - List findAll(); -} diff --git a/templates/hw05-jdbc-simple-template/src/main/java/ru/otus/hw/services/AuthorServiceImpl.java b/templates/hw05-jdbc-simple-template/src/main/java/ru/otus/hw/services/AuthorServiceImpl.java deleted file mode 100644 index 36740ca1..00000000 --- a/templates/hw05-jdbc-simple-template/src/main/java/ru/otus/hw/services/AuthorServiceImpl.java +++ /dev/null @@ -1,19 +0,0 @@ -package ru.otus.hw.services; - -import lombok.RequiredArgsConstructor; -import org.springframework.stereotype.Service; -import ru.otus.hw.models.Author; -import ru.otus.hw.repositories.AuthorRepository; - -import java.util.List; - -@RequiredArgsConstructor -@Service -public class AuthorServiceImpl implements AuthorService { - private final AuthorRepository authorRepository; - - @Override - public List findAll() { - return authorRepository.findAll(); - } -} diff --git a/templates/hw05-jdbc-simple-template/src/main/java/ru/otus/hw/services/GenreService.java b/templates/hw05-jdbc-simple-template/src/main/java/ru/otus/hw/services/GenreService.java deleted file mode 100644 index 3fd4170b..00000000 --- a/templates/hw05-jdbc-simple-template/src/main/java/ru/otus/hw/services/GenreService.java +++ /dev/null @@ -1,9 +0,0 @@ -package ru.otus.hw.services; - -import ru.otus.hw.models.Genre; - -import java.util.List; - -public interface GenreService { - List findAll(); -} diff --git a/templates/hw05-jdbc-simple-template/src/main/java/ru/otus/hw/services/GenreServiceImpl.java b/templates/hw05-jdbc-simple-template/src/main/java/ru/otus/hw/services/GenreServiceImpl.java deleted file mode 100644 index 8d1f620a..00000000 --- a/templates/hw05-jdbc-simple-template/src/main/java/ru/otus/hw/services/GenreServiceImpl.java +++ /dev/null @@ -1,19 +0,0 @@ -package ru.otus.hw.services; - -import lombok.RequiredArgsConstructor; -import org.springframework.stereotype.Service; -import ru.otus.hw.models.Genre; -import ru.otus.hw.repositories.GenreRepository; - -import java.util.List; - -@RequiredArgsConstructor -@Service -public class GenreServiceImpl implements GenreService { - private final GenreRepository genreRepository; - - @Override - public List findAll() { - return genreRepository.findAll(); - } -} diff --git a/templates/hw05-jdbc-simple-template/src/main/resources/application.yml b/templates/hw05-jdbc-simple-template/src/main/resources/application.yml deleted file mode 100644 index c037758d..00000000 --- a/templates/hw05-jdbc-simple-template/src/main/resources/application.yml +++ /dev/null @@ -1,8 +0,0 @@ -spring: - datasource: - url: jdbc:h2:mem:maindb - sql: - init: - mode: always - data-locations: data.sql - schema-locations: schema.sql \ No newline at end of file diff --git a/templates/hw05-jdbc-simple-template/src/test/resources/application.yml b/templates/hw05-jdbc-simple-template/src/test/resources/application.yml deleted file mode 100644 index 45c16b3d..00000000 --- a/templates/hw05-jdbc-simple-template/src/test/resources/application.yml +++ /dev/null @@ -1,8 +0,0 @@ -spring: - datasource: - url: jdbc:h2:mem:testdb - sql: - init: - mode: always - data-locations: data.sql - schema-locations: schema.sql \ No newline at end of file diff --git a/templates/hw05-jdbc-hard-template/.gitignore b/templates/hw05-jdbc-simple/.gitignore similarity index 94% rename from templates/hw05-jdbc-hard-template/.gitignore rename to templates/hw05-jdbc-simple/.gitignore index b96df348..153c9335 100644 --- a/templates/hw05-jdbc-hard-template/.gitignore +++ b/templates/hw05-jdbc-simple/.gitignore @@ -16,7 +16,6 @@ HELP.md *.iws *.iml *.ipr -spring-shell.log ### NetBeans ### /nbproject/private/ diff --git a/templates/hw05-jdbc-simple-template/pom.xml b/templates/hw05-jdbc-simple/pom.xml similarity index 99% rename from templates/hw05-jdbc-simple-template/pom.xml rename to templates/hw05-jdbc-simple/pom.xml index 86f97d4b..9c467b1a 100644 --- a/templates/hw05-jdbc-simple-template/pom.xml +++ b/templates/hw05-jdbc-simple/pom.xml @@ -5,7 +5,7 @@ org.springframework.boot spring-boot-starter-parent - 3.1.2 + 3.1.5 diff --git a/templates/hw05-jdbc-simple-template/src/main/java/ru/otus/hw/Application.java b/templates/hw05-jdbc-simple/src/main/java/ru/otus/hw/Application.java similarity index 100% rename from templates/hw05-jdbc-simple-template/src/main/java/ru/otus/hw/Application.java rename to templates/hw05-jdbc-simple/src/main/java/ru/otus/hw/Application.java diff --git a/templates/hw05-jdbc-hard-template/src/main/java/ru/otus/hw/commands/AuthorCommands.java b/templates/hw05-jdbc-simple/src/main/java/ru/otus/hw/commands/AuthorCommands.java similarity index 100% rename from templates/hw05-jdbc-hard-template/src/main/java/ru/otus/hw/commands/AuthorCommands.java rename to templates/hw05-jdbc-simple/src/main/java/ru/otus/hw/commands/AuthorCommands.java diff --git a/templates/hw05-jdbc-simple-template/src/main/java/ru/otus/hw/commands/BookCommands.java b/templates/hw05-jdbc-simple/src/main/java/ru/otus/hw/commands/BookCommands.java similarity index 91% rename from templates/hw05-jdbc-simple-template/src/main/java/ru/otus/hw/commands/BookCommands.java rename to templates/hw05-jdbc-simple/src/main/java/ru/otus/hw/commands/BookCommands.java index 2a6124f0..fb65dba1 100644 --- a/templates/hw05-jdbc-simple-template/src/main/java/ru/otus/hw/commands/BookCommands.java +++ b/templates/hw05-jdbc-simple/src/main/java/ru/otus/hw/commands/BookCommands.java @@ -8,6 +8,7 @@ import ru.otus.hw.services.BookService; import java.util.stream.Collectors; +@SuppressWarnings({"SpellCheckingInspection", "unused"}) @RequiredArgsConstructor @ShellComponent public class BookCommands { @@ -30,12 +31,14 @@ public class BookCommands { .orElse("Book with id %d not found".formatted(id)); } + // bins newBook 1 1 @ShellMethod(value = "Insert book", key = "bins") public String insertBook(String title, long authorId, long genreId) { var savedBook = bookService.insert(title, authorId, genreId); return bookConverter.bookToString(savedBook); } + // bupd 4 editedBook 3 2 @ShellMethod(value = "Update book", key = "bupd") public String updateBook(long id, String title, long authorId, long genreId) { var savedBook = bookService.update(id, title, authorId, genreId); diff --git a/templates/hw05-jdbc-hard-template/src/main/java/ru/otus/hw/commands/GenreCommands.java b/templates/hw05-jdbc-simple/src/main/java/ru/otus/hw/commands/GenreCommands.java similarity index 100% rename from templates/hw05-jdbc-hard-template/src/main/java/ru/otus/hw/commands/GenreCommands.java rename to templates/hw05-jdbc-simple/src/main/java/ru/otus/hw/commands/GenreCommands.java diff --git a/templates/hw05-jdbc-hard-template/src/main/java/ru/otus/hw/converters/AuthorConverter.java b/templates/hw05-jdbc-simple/src/main/java/ru/otus/hw/converters/AuthorConverter.java similarity index 100% rename from templates/hw05-jdbc-hard-template/src/main/java/ru/otus/hw/converters/AuthorConverter.java rename to templates/hw05-jdbc-simple/src/main/java/ru/otus/hw/converters/AuthorConverter.java diff --git a/templates/hw05-jdbc-simple-template/src/main/java/ru/otus/hw/converters/BookConverter.java b/templates/hw05-jdbc-simple/src/main/java/ru/otus/hw/converters/BookConverter.java similarity index 100% rename from templates/hw05-jdbc-simple-template/src/main/java/ru/otus/hw/converters/BookConverter.java rename to templates/hw05-jdbc-simple/src/main/java/ru/otus/hw/converters/BookConverter.java diff --git a/templates/hw05-jdbc-hard-template/src/main/java/ru/otus/hw/converters/GenreConverter.java b/templates/hw05-jdbc-simple/src/main/java/ru/otus/hw/converters/GenreConverter.java similarity index 100% rename from templates/hw05-jdbc-hard-template/src/main/java/ru/otus/hw/converters/GenreConverter.java rename to templates/hw05-jdbc-simple/src/main/java/ru/otus/hw/converters/GenreConverter.java diff --git a/templates/hw05-jdbc-hard-template/src/main/java/ru/otus/hw/exceptions/EntityNotFoundException.java b/templates/hw05-jdbc-simple/src/main/java/ru/otus/hw/exceptions/EntityNotFoundException.java similarity index 100% rename from templates/hw05-jdbc-hard-template/src/main/java/ru/otus/hw/exceptions/EntityNotFoundException.java rename to templates/hw05-jdbc-simple/src/main/java/ru/otus/hw/exceptions/EntityNotFoundException.java diff --git a/templates/hw05-jdbc-hard-template/src/main/java/ru/otus/hw/models/Author.java b/templates/hw05-jdbc-simple/src/main/java/ru/otus/hw/models/Author.java similarity index 100% rename from templates/hw05-jdbc-hard-template/src/main/java/ru/otus/hw/models/Author.java rename to templates/hw05-jdbc-simple/src/main/java/ru/otus/hw/models/Author.java diff --git a/templates/hw05-jdbc-simple-template/src/main/java/ru/otus/hw/models/Book.java b/templates/hw05-jdbc-simple/src/main/java/ru/otus/hw/models/Book.java similarity index 100% rename from templates/hw05-jdbc-simple-template/src/main/java/ru/otus/hw/models/Book.java rename to templates/hw05-jdbc-simple/src/main/java/ru/otus/hw/models/Book.java diff --git a/templates/hw05-jdbc-hard-template/src/main/java/ru/otus/hw/models/Genre.java b/templates/hw05-jdbc-simple/src/main/java/ru/otus/hw/models/Genre.java similarity index 100% rename from templates/hw05-jdbc-hard-template/src/main/java/ru/otus/hw/models/Genre.java rename to templates/hw05-jdbc-simple/src/main/java/ru/otus/hw/models/Genre.java diff --git a/templates/hw05-jdbc-hard-template/src/main/java/ru/otus/hw/repositories/AuthorRepository.java b/templates/hw05-jdbc-simple/src/main/java/ru/otus/hw/repositories/AuthorRepository.java similarity index 100% rename from templates/hw05-jdbc-hard-template/src/main/java/ru/otus/hw/repositories/AuthorRepository.java rename to templates/hw05-jdbc-simple/src/main/java/ru/otus/hw/repositories/AuthorRepository.java diff --git a/templates/hw05-jdbc-hard-template/src/main/java/ru/otus/hw/repositories/BookRepository.java b/templates/hw05-jdbc-simple/src/main/java/ru/otus/hw/repositories/BookRepository.java similarity index 100% rename from templates/hw05-jdbc-hard-template/src/main/java/ru/otus/hw/repositories/BookRepository.java rename to templates/hw05-jdbc-simple/src/main/java/ru/otus/hw/repositories/BookRepository.java diff --git a/templates/hw05-jdbc-simple-template/src/main/java/ru/otus/hw/repositories/GenreRepository.java b/templates/hw05-jdbc-simple/src/main/java/ru/otus/hw/repositories/GenreRepository.java similarity index 100% rename from templates/hw05-jdbc-simple-template/src/main/java/ru/otus/hw/repositories/GenreRepository.java rename to templates/hw05-jdbc-simple/src/main/java/ru/otus/hw/repositories/GenreRepository.java diff --git a/templates/hw05-jdbc-simple-template/src/main/java/ru/otus/hw/repositories/AuthorRepositoryJdbc.java b/templates/hw05-jdbc-simple/src/main/java/ru/otus/hw/repositories/JdbcAuthorRepository.java similarity index 91% rename from templates/hw05-jdbc-simple-template/src/main/java/ru/otus/hw/repositories/AuthorRepositoryJdbc.java rename to templates/hw05-jdbc-simple/src/main/java/ru/otus/hw/repositories/JdbcAuthorRepository.java index b12c0c2c..892acbcc 100644 --- a/templates/hw05-jdbc-simple-template/src/main/java/ru/otus/hw/repositories/AuthorRepositoryJdbc.java +++ b/templates/hw05-jdbc-simple/src/main/java/ru/otus/hw/repositories/JdbcAuthorRepository.java @@ -11,7 +11,7 @@ import java.util.List; import java.util.Optional; @Repository -public class AuthorRepositoryJdbc implements AuthorRepository { +public class JdbcAuthorRepository implements AuthorRepository { @Override public List findAll() { diff --git a/templates/hw05-jdbc-simple-template/src/main/java/ru/otus/hw/repositories/BookRepositoryJdbc.java b/templates/hw05-jdbc-simple/src/main/java/ru/otus/hw/repositories/JdbcBookRepository.java similarity index 87% rename from templates/hw05-jdbc-simple-template/src/main/java/ru/otus/hw/repositories/BookRepositoryJdbc.java rename to templates/hw05-jdbc-simple/src/main/java/ru/otus/hw/repositories/JdbcBookRepository.java index fb3c70c3..6dc8760d 100644 --- a/templates/hw05-jdbc-simple-template/src/main/java/ru/otus/hw/repositories/BookRepositoryJdbc.java +++ b/templates/hw05-jdbc-simple/src/main/java/ru/otus/hw/repositories/JdbcBookRepository.java @@ -12,7 +12,7 @@ import java.util.List; import java.util.Optional; @Repository -public class BookRepositoryJdbc implements BookRepository { +public class JdbcBookRepository implements BookRepository { @Override public Optional findById(long id) { @@ -49,6 +49,7 @@ public class BookRepositoryJdbc implements BookRepository { private Book update(Book book) { //... + // Выбросить EntityNotFoundException если не обновлено ни одной записи в БД return book; } diff --git a/templates/hw05-jdbc-simple-template/src/main/java/ru/otus/hw/repositories/GenreRepositoryJdbc.java b/templates/hw05-jdbc-simple/src/main/java/ru/otus/hw/repositories/JdbcGenreRepository.java similarity index 91% rename from templates/hw05-jdbc-simple-template/src/main/java/ru/otus/hw/repositories/GenreRepositoryJdbc.java rename to templates/hw05-jdbc-simple/src/main/java/ru/otus/hw/repositories/JdbcGenreRepository.java index 075e7f82..dc4e2837 100644 --- a/templates/hw05-jdbc-simple-template/src/main/java/ru/otus/hw/repositories/GenreRepositoryJdbc.java +++ b/templates/hw05-jdbc-simple/src/main/java/ru/otus/hw/repositories/JdbcGenreRepository.java @@ -11,7 +11,7 @@ import java.util.List; import java.util.Optional; @Repository -public class GenreRepositoryJdbc implements GenreRepository { +public class JdbcGenreRepository implements GenreRepository { @Override public List findAll() { diff --git a/templates/hw05-jdbc-hard-template/src/main/java/ru/otus/hw/services/AuthorService.java b/templates/hw05-jdbc-simple/src/main/java/ru/otus/hw/services/AuthorService.java similarity index 100% rename from templates/hw05-jdbc-hard-template/src/main/java/ru/otus/hw/services/AuthorService.java rename to templates/hw05-jdbc-simple/src/main/java/ru/otus/hw/services/AuthorService.java diff --git a/templates/hw05-jdbc-hard-template/src/main/java/ru/otus/hw/services/AuthorServiceImpl.java b/templates/hw05-jdbc-simple/src/main/java/ru/otus/hw/services/AuthorServiceImpl.java similarity index 100% rename from templates/hw05-jdbc-hard-template/src/main/java/ru/otus/hw/services/AuthorServiceImpl.java rename to templates/hw05-jdbc-simple/src/main/java/ru/otus/hw/services/AuthorServiceImpl.java diff --git a/templates/hw05-jdbc-simple-template/src/main/java/ru/otus/hw/services/BookService.java b/templates/hw05-jdbc-simple/src/main/java/ru/otus/hw/services/BookService.java similarity index 100% rename from templates/hw05-jdbc-simple-template/src/main/java/ru/otus/hw/services/BookService.java rename to templates/hw05-jdbc-simple/src/main/java/ru/otus/hw/services/BookService.java diff --git a/templates/hw05-jdbc-simple-template/src/main/java/ru/otus/hw/services/BookServiceImpl.java b/templates/hw05-jdbc-simple/src/main/java/ru/otus/hw/services/BookServiceImpl.java similarity index 100% rename from templates/hw05-jdbc-simple-template/src/main/java/ru/otus/hw/services/BookServiceImpl.java rename to templates/hw05-jdbc-simple/src/main/java/ru/otus/hw/services/BookServiceImpl.java diff --git a/templates/hw05-jdbc-hard-template/src/main/java/ru/otus/hw/services/GenreService.java b/templates/hw05-jdbc-simple/src/main/java/ru/otus/hw/services/GenreService.java similarity index 100% rename from templates/hw05-jdbc-hard-template/src/main/java/ru/otus/hw/services/GenreService.java rename to templates/hw05-jdbc-simple/src/main/java/ru/otus/hw/services/GenreService.java diff --git a/templates/hw05-jdbc-hard-template/src/main/java/ru/otus/hw/services/GenreServiceImpl.java b/templates/hw05-jdbc-simple/src/main/java/ru/otus/hw/services/GenreServiceImpl.java similarity index 100% rename from templates/hw05-jdbc-hard-template/src/main/java/ru/otus/hw/services/GenreServiceImpl.java rename to templates/hw05-jdbc-simple/src/main/java/ru/otus/hw/services/GenreServiceImpl.java diff --git a/templates/hw05-jdbc-hard-template/src/main/resources/application.yml b/templates/hw05-jdbc-simple/src/main/resources/application.yml similarity index 100% rename from templates/hw05-jdbc-hard-template/src/main/resources/application.yml rename to templates/hw05-jdbc-simple/src/main/resources/application.yml diff --git a/templates/hw05-jdbc-simple-template/src/main/resources/data.sql b/templates/hw05-jdbc-simple/src/main/resources/data.sql similarity index 100% rename from templates/hw05-jdbc-simple-template/src/main/resources/data.sql rename to templates/hw05-jdbc-simple/src/main/resources/data.sql diff --git a/templates/hw05-jdbc-simple-template/src/main/resources/schema.sql b/templates/hw05-jdbc-simple/src/main/resources/schema.sql similarity index 100% rename from templates/hw05-jdbc-simple-template/src/main/resources/schema.sql rename to templates/hw05-jdbc-simple/src/main/resources/schema.sql diff --git a/templates/hw05-jdbc-simple-template/src/test/java/ru/otus/hw/repositories/BookRepositoryJdbcTest.java b/templates/hw05-jdbc-simple/src/test/java/ru/otus/hw/repositories/JdbcBookRepositoryTest.java similarity index 96% rename from templates/hw05-jdbc-simple-template/src/test/java/ru/otus/hw/repositories/BookRepositoryJdbcTest.java rename to templates/hw05-jdbc-simple/src/test/java/ru/otus/hw/repositories/JdbcBookRepositoryTest.java index 10e1b640..4583cec5 100644 --- a/templates/hw05-jdbc-simple-template/src/test/java/ru/otus/hw/repositories/BookRepositoryJdbcTest.java +++ b/templates/hw05-jdbc-simple/src/test/java/ru/otus/hw/repositories/JdbcBookRepositoryTest.java @@ -19,11 +19,11 @@ import static org.assertj.core.api.Assertions.assertThat; @DisplayName("Репозиторий на основе Jdbc для работы с книгами ") @JdbcTest -@Import({BookRepositoryJdbc.class, GenreRepositoryJdbc.class}) -class BookRepositoryJdbcTest { +@Import({JdbcBookRepository.class, JdbcGenreRepository.class}) +class JdbcBookRepositoryTest { @Autowired - private BookRepositoryJdbc repositoryJdbc; + private JdbcBookRepository repositoryJdbc; private List dbAuthors; diff --git a/templates/hw05-jdbc-hard-template/src/test/resources/application.yml b/templates/hw05-jdbc-simple/src/test/resources/application.yml similarity index 100% rename from templates/hw05-jdbc-hard-template/src/test/resources/application.yml rename to templates/hw05-jdbc-simple/src/test/resources/application.yml diff --git a/templates/hw05-jdbc-simple-template/src/test/resources/data.sql b/templates/hw05-jdbc-simple/src/test/resources/data.sql similarity index 100% rename from templates/hw05-jdbc-simple-template/src/test/resources/data.sql rename to templates/hw05-jdbc-simple/src/test/resources/data.sql