Java Reference
In-Depth Information
import org.springframework.jdbc.core.RowMapper;
import com.apress.springbatch.statement.dao.AccountDao;
import com.apress.springbatch.statement.domain.Account;
import com.apress.springbatch.statement.domain.Address;
import com.apress.springbatch.statement.domain.Customer;
import com.apress.springbatch.statement.domain.PricingTier;
import com.apress.springbatch.statement.domain.Transaction;
import com.apress.springbatch.statement.domain.TransactionType;
public class AccountDaoJdbc extends JdbcTemplate implements AccountDao {
private static final String FIND_BY_ACCOUNT_NUMBER = "select a.id, " +
"a.accountNumber, a.cashBalance, a.tier, a.customer_id, c.firstName, " +
"c.lastName, c.ssn, c.address1, c.city, c.state, c.zip, t.id as transaction_id, " +
"t.transactionType, t.executedTime, t.dollarAmount, t.qty, t.tickerId, t.fee " +
"from account a inner join customer c on a.customer_id = c.id left outer join " +
"transaction t on a.id = t.account_id where accountNumber = ?";
private final class AccountRowMapper implements RowMapper {
public Object mapRow(ResultSet rs, int arg1)
throws SQLException {
Account account = new Account();
account.setAccountNumber(rs.getString("accountNumber"));
account.setCashBalance(rs.getBigDecimal("cashBalance"));
account.setTier(PricingTier.convert(rs.getInt("tier")));
account.setId(rs.getLong("id"));
account.setCust(buildCustomer(rs));
account.setTransactions(buildTransactions(rs));
return account;
}
private List<Transaction> buildTransactions(ResultSet rs) throws SQLException {
List<Transaction> transactions = new ArrayList<Transaction>();
do {
if(rs.getLong("transaction_id") >= 0) {
Transaction curTransaction = new Transaction();
curTransaction.setAccountId(rs.getLong("id"));
curTransaction.setAccountNumber(rs.getString("accountNumber"));
curTransaction.setDollarAmount(rs.getBigDecimal("dollarAmount"));
curTransaction.setId(rs.getLong("transaction_id"));
curTransaction.setQuantity(rs.getLong("qty"));
curTransaction.setTickerId(rs.getLong("tickerId"));
curTransaction.setTradeTimestamp(rs.getDate("executedTime"));
curTransaction.setType(TransactionType.fromIntValue(rs.getInt("transactionType")));
transactions.add(curTransaction);
}
Search WWH ::




Custom Search