@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; } }); } } }