Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @Override
- public Map<Reader, List<Book>> findAllWithBooks() {
- var selectAllReadersWithBooks =
- """
- SELECT reader.id, reader.name, book.name AS bookName, book.author AS authorName
- FROM reader LEFT JOIN book ON reader.id = book.reader_id
- """;
- try (var connection = DBUtil.getConnection();
- var selectAllReadersWithBooksStatement = connection.createStatement()) {
- var resultSet = selectAllReadersWithBooksStatement.executeQuery(selectAllReadersWithBooks);
- Map<Reader, List<Book>> map = new HashMap<>();
- while (resultSet.next()) {
- var book = new Book(resultSet.getString("bookName"), resultSet.getString("authorName"));
- map.computeIfAbsent(mapResultSetToReader(resultSet), k -> new ArrayList<>()).add(book);
- }
- return map;
- } catch (SQLException e) {
- throw new DaoOperationException("Error finding readers with borrowed books list!");
- }
- }
- private void showAllReadersWithBorrowedBooks() {
- Map<Reader, List<Book>> map = libraryService.findAllReadersWithBooks();
- map.forEach(
- (reader, books) -> {
- if (books.get(0).getName() == null) {
- System.out.println(
- reader.getName()
- + ":"
- + SET_GREEN_TEXT_COLOR
- + "no books borrowed"
- + SET_DEFAULT_TEXT_COLOR);
- } else {
- System.out.print(SET_GREEN_TEXT_COLOR + reader.getName() + ": ");
- var booksInfo =
- books.stream()
- .map(book -> SET_GREEN_TEXT_COLOR + book.getName() + " by " + book.getAuthor())
- .collect(Collectors.joining(", "));
- System.out.println(booksInfo + SET_DEFAULT_TEXT_COLOR);
- }
- });
- }
- package entity;
- import java.util.Objects;
- public class Book {
- private long id;
- private String name;
- private String author;
- private long readerId;
- public Book(String name, String author) {
- this.name = name;
- this.author = author;
- }
- public Book() {
- }
- public void setReaderId(long readerId) {
- this.readerId = readerId;
- }
- public void setId(long id) {
- this.id = id;
- }
- public void setName(String name) {
- this.name = name;
- }
- public void setAuthor(String author) {
- this.author = author;
- }
- public String getName() {
- return name;
- }
- public String getAuthor() {
- return author;
- }
- @Override
- public boolean equals(Object o) {
- if (this == o) return true;
- if (o == null || getClass() != o.getClass()) return false;
- Book book = (Book) o;
- return id == book.id;
- }
- @Override
- public int hashCode() {
- return Objects.hash(id);
- }
- @Override
- public String toString() {
- return "Book{"
- + "id="
- + id
- + ", name='"
- + name
- + '\''
- + ", author='"
- + author
- + '\''
- + ", readerId="
- + readerId
- + '}';
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement