1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.springframework.batch.sample.domain.trade.internal;
18
19 import javax.sql.DataSource;
20
21 import org.apache.commons.logging.Log;
22 import org.apache.commons.logging.LogFactory;
23 import org.springframework.batch.sample.domain.trade.Trade;
24 import org.springframework.batch.sample.domain.trade.TradeDao;
25 import org.springframework.jdbc.core.JdbcOperations;
26 import org.springframework.jdbc.core.JdbcTemplate;
27 import org.springframework.jdbc.support.incrementer.DataFieldMaxValueIncrementer;
28
29
30
31
32
33
34
35 public class JdbcTradeDao implements TradeDao {
36 private Log log = LogFactory.getLog(JdbcTradeDao.class);
37
38
39
40 private static final String INSERT_TRADE_RECORD = "INSERT INTO TRADE (id, version, isin, quantity, price, customer) VALUES (?, 0, ?, ? ,?, ?)";
41
42
43
44
45 private JdbcOperations jdbcTemplate;
46
47
48
49
50 private DataFieldMaxValueIncrementer incrementer;
51
52
53
54
55 public void writeTrade(Trade trade) {
56 Long id = incrementer.nextLongValue();
57 log.debug("Processing: " + trade);
58 jdbcTemplate.update(INSERT_TRADE_RECORD,
59 id, trade.getIsin(), trade.getQuantity(), trade.getPrice(),
60 trade.getCustomer());
61 }
62
63 public void setDataSource(DataSource dataSource) {
64 this.jdbcTemplate = new JdbcTemplate(dataSource);
65 }
66
67 public void setIncrementer(DataFieldMaxValueIncrementer incrementer) {
68 this.incrementer = incrementer;
69 }
70
71 }