From f71cc08e09b688222b03b91c23fb4e4dfccfefc9 Mon Sep 17 00:00:00 2001 From: Artem Kostenko Date: Thu, 3 Aug 2023 18:50:54 +0300 Subject: [PATCH] fix after review --- .../mate/academy/dao/impl/BookDaoImpl.java | 65 +++++++++---------- 1 file changed, 31 insertions(+), 34 deletions(-) diff --git a/src/main/java/mate/academy/dao/impl/BookDaoImpl.java b/src/main/java/mate/academy/dao/impl/BookDaoImpl.java index 28989565..6e2c4b18 100644 --- a/src/main/java/mate/academy/dao/impl/BookDaoImpl.java +++ b/src/main/java/mate/academy/dao/impl/BookDaoImpl.java @@ -22,13 +22,13 @@ public Book create(Book book) { String createRequest = "INSERT INTO books " + "(title, price) values(?, ?);"; try (Connection connection = ConnectionUtil.getConnection(); - PreparedStatement createManufacturerStatements = + PreparedStatement statement = connection.prepareStatement(createRequest, Statement.RETURN_GENERATED_KEYS)) { - createManufacturerStatements.setString(1, book.getTitle()); - createManufacturerStatements.setBigDecimal(2, book.getPrice()); - createManufacturerStatements.executeUpdate(); - ResultSet generatedKeys = createManufacturerStatements.getGeneratedKeys(); + statement.setString(1, book.getTitle()); + statement.setBigDecimal(2, book.getPrice()); + statement.executeUpdate(); + ResultSet generatedKeys = statement.getGeneratedKeys(); if (generatedKeys.next()) { book.setId(generatedKeys.getObject(1, Long.class)); } @@ -40,18 +40,18 @@ public Book create(Book book) { @Override public Optional findById(Long id) { - String selectRequest = "SELECT title, price " + String selectRequest = "SELECT id, title, price " + "FROM books " + "WHERE is_deleted = 0 AND id = ?;"; try (Connection connection = ConnectionUtil.getConnection(); - PreparedStatement getManufacturerStatements = + PreparedStatement statement = connection.prepareStatement(selectRequest)) { - getManufacturerStatements.setLong(1, id); - ResultSet resultSet = getManufacturerStatements.executeQuery(); + statement.setLong(1, id); + ResultSet resultSet = statement.executeQuery(); if (resultSet.next()) { String title = resultSet.getString("title"); BigDecimal price = resultSet.getBigDecimal("price"); - return Optional.of(getBook(id, title, price)); + return Optional.of(getBook(resultSet)); } } catch (SQLException e) { throw new DataProcessingException("Can't get book by id: " + id, e); @@ -66,15 +66,12 @@ public List findAll() { + "FROM books " + "WHERE is_deleted = 0;"; try (Connection connection = ConnectionUtil.getConnection(); - PreparedStatement getManufacturerStatements = + PreparedStatement statement = connection.prepareStatement(selectRequest)) { - ResultSet resultSet = getManufacturerStatements.executeQuery(); + ResultSet resultSet = statement.executeQuery(); List bookList = new ArrayList<>(); while (resultSet.next()) { - Long id = resultSet.getLong("id"); - String title = resultSet.getString("title"); - BigDecimal price = resultSet.getBigDecimal("price"); - bookList.add(getBook(id, title, price)); + bookList.add(getBook(resultSet)); } return bookList; } catch (SQLException e) { @@ -88,12 +85,12 @@ public Book update(Book book) { + "SET title = ?, price = ? " + "WHERE id = ? AND is_deleted = 0"; try (Connection connection = ConnectionUtil.getConnection(); - PreparedStatement updateManufacturerStatements = + PreparedStatement statement = connection.prepareStatement(updateRequest)) { - updateManufacturerStatements.setString(1, book.getTitle()); - updateManufacturerStatements.setBigDecimal(2, book.getPrice()); - updateManufacturerStatements.setLong(3, book.getId()); - int rows = updateManufacturerStatements.executeUpdate(); + statement.setString(1, book.getTitle()); + statement.setBigDecimal(2, book.getPrice()); + statement.setLong(3, book.getId()); + int rows = statement.executeUpdate(); if (rows != 1) { throw new DataProcessingException("Can't update book " + book, new SQLException()); @@ -111,25 +108,25 @@ public boolean deleteById(Long id) { + "SET is_deleted = 1 " + "WHERE id = ? AND is_deleted = 0"; try (Connection connection = ConnectionUtil.getConnection(); - PreparedStatement updateManufacturerStatements = + PreparedStatement statement = connection.prepareStatement(updateRequest)) { - updateManufacturerStatements.setLong(1, id); - int rows = updateManufacturerStatements.executeUpdate(); - if (rows == 1) { - return true; - } + statement.setLong(1, id); + return statement.executeUpdate() > 0; } catch (SQLException e) { throw new DataProcessingException("Can't delete book with ID " + id, e); } - return false; } - private Book getBook(Long id, String title, BigDecimal price) { - Book book = new Book(); - book.setId(id); - book.setTitle(title); - book.setPrice(price); - return book; + private Book getBook(ResultSet resultSet) { + try { + Book book = new Book(); + book.setId(resultSet.getLong("id")); + book.setTitle(resultSet.getString("title")); + book.setPrice(resultSet.getBigDecimal("price")); + return book; + } catch (SQLException e) { + throw new DataProcessingException("Can't get fields from result set", e); + } } }