OrderPreparedStatementCreator:
package com.mmera.store.dao.util;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.Map;
import org.springframework.jdbc.core.PreparedStatementCreator;
public class OrderPreparedStatementCreator implements PreparedStatementCreator {
private static final String sql = "insert into store_order(orderSerial,orderZipCode,orderAddress,userId,orderReceiver,orderMessage,orderPhone,orderMobile,orderPayType,orderLogisticFee,orderTime) values(?,?,?,?,?,?,?,?,?,now())";
private Map<Object, Object> order;
public OrderPreparedStatementCreator(Map<Object,Object> order){
this.order = order;
}
public PreparedStatement createPreparedStatement(Connection connection) throws SQLException {
PreparedStatement ps = connection.prepareStatement(sql);
ps.setString(1, order.get("orderSerial").toString());
ps.setString(2, order.get("orderZipCode").toString());
ps.setString(3, order.get("orderAddress").toString());
ps.setInt(4, (Integer)order.get("userId"));
ps.setString(5, order.get("orderReceiver").toString());
ps.setString(6, order.get("orderMessage").toString());
ps.setString(7, order.get("orderPhone").toString());
ps.setString(8, order.get("orderMobile").toString());
ps.setString(9, order.get("orderPayType").toString());
ps.setDouble(10, (Double)order.get("orderLogisticFee"));
return ps;
}
}
public void insertOrder(Map<Object,Object> order,List<Map<?,?>> orderItems){
KeyHolder kh = new GeneratedKeyHolder();
PreparedStatementCreator psc = new OrderPreparedStatementCreator(order);
getJdbcTemplate().update(psc, kh);
Long orderId = kh.getKey().longValue();
String sql = "insert into store_orderitem(orderId,orderItemSerial,orderItemBrand,orderItemCatena,orderItemName,orderItemPrice,orderItemSpec,orderItemStyle,productSerial) values(?,?,?,?,?,?,?,?,?)";
for(int i=0;i<orderItems.size();i++){
Map<?, ?> orderItem = orderItems.get(i);
Object[] args = {
orderId,
orderItem.get("orderItemSerial"),
orderItem.get("orderItemBrand"),
orderItem.get("orderItemCatena"),
orderItem.get("orderItemName"),
(Double)orderItem.get("orderItemPrice"),
orderItem.get("orderItemSpec"),
orderItem.get("orderItemStyle"),
orderItem.get("productSerial")
};
getJdbcTemplate().update(sql, args);
}
}