예제 #1
0
  @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;
              }
            });
      }
    }
  }