@Override public void updateStock(List<Book> books) { for (Book book : books) { if (getStockByIsbn(book.getIsbn()) == 0) { if (book.getStock() > 0) { jdbcTemplate.update( new PreparedStatementCreator() { @Override public PreparedStatement createPreparedStatement(Connection con) throws SQLException { String query = "insert into " + stockTable + " (isbn,stock) values(?,?)"; PreparedStatement ps = con.prepareStatement(query); ps.setString(1, book.getIsbn()); ps.setInt(2, book.getStock()); return ps; } }); } } else { if (book.getStock() == 0) { removeStockEntry(book.getIsbn()); } jdbcTemplate.update( new PreparedStatementCreator() { @Override public PreparedStatement createPreparedStatement(Connection con) throws SQLException { String query = "update " + stockTable + " set stock = ? where isbn = ?"; PreparedStatement ps = con.prepareStatement(query); ps.setInt(1, book.getStock()); ps.setString(2, book.getIsbn()); return ps; } }); } } }
@Override public void reduceStock(Map<String, Integer> cartMap) { for (String isbn : cartMap.keySet()) { if (getStockByIsbn(isbn) == cartMap.get(isbn)) { removeStockEntry(isbn); } else { jdbcTemplate.update( new PreparedStatementCreator() { @Override public PreparedStatement createPreparedStatement(Connection con) throws SQLException { String query = "update " + stockTable + " set stock = stock - ? where isbn = ?"; PreparedStatement ps = con.prepareStatement(query); ps.setInt(1, cartMap.get(isbn)); ps.setString(2, isbn); return ps; } }); } } }