1 package org.springframework.samples.jpetstore.dao.ibatis; 2 3 import java.util.List ; 4 5 import org.springframework.dao.DataAccessException; 6 import org.springframework.orm.ibatis.support.SqlMapClientDaoSupport; 7 import org.springframework.samples.jpetstore.dao.OrderDao; 8 import org.springframework.samples.jpetstore.domain.LineItem; 9 import org.springframework.samples.jpetstore.domain.Order; 10 11 public class SqlMapOrderDao extends SqlMapClientDaoSupport implements OrderDao { 12 13 private SqlMapSequenceDao sequenceDao; 14 15 public void setSequenceDao(SqlMapSequenceDao sequenceDao) { 16 this.sequenceDao = sequenceDao; 17 } 18 19 public List getOrdersByUsername(String username) throws DataAccessException { 20 return getSqlMapClientTemplate().queryForList("getOrdersByUsername", username); 21 } 22 23 public Order getOrder(int orderId) throws DataAccessException { 24 Object parameterObject = new Integer (orderId); 25 Order order = (Order) getSqlMapClientTemplate().queryForObject("getOrder", parameterObject); 26 if (order != null) { 27 order.setLineItems(getSqlMapClientTemplate().queryForList("getLineItemsByOrderId", new Integer (order.getOrderId()))); 28 } 29 return order; 30 } 31 32 public void insertOrder(Order order) throws DataAccessException { 33 order.setOrderId(this.sequenceDao.getNextId("ordernum")); 34 getSqlMapClientTemplate().insert("insertOrder", order); 35 getSqlMapClientTemplate().insert("insertOrderStatus", order); 36 for (int i = 0; i < order.getLineItems().size(); i++) { 37 LineItem lineItem = (LineItem) order.getLineItems().get(i); 38 lineItem.setOrderId(order.getOrderId()); 39 getSqlMapClientTemplate().insert("insertLineItem", lineItem); 40 } 41 } 42 43 } 44 | Popular Tags |