一.使用技術
- IDE:Eclipse
- 資料庫:Mysql
- 資料源:C3P0
- JDBC 工具:DBUtils
- 前端架構:Bootstrap
- Ajax 解決方案:jQuery + JavaScript + JSON + Google-gson
二.資料庫表
表account:
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIyZuBnL2kzN2QDNyITNx0CM1MDMwcDN5ATOyUDM5EDMy0CO0QjMxYTMvwVNwkTMwIzLchDN0ITM2EzLcd2bsJ2Lc12bj5ycn9Gbi52YugTMwIzZtl2Lc9CX6MHc0RHaiojIsJye.png)
表mycomputers:
表tradeitem:
表trate:
表userinfo:
三.表現層設計與實作
3.1.1 首頁
3.1.2 分頁
3.1.3 篩選範圍
3.1.4 購物車
3.1.5 結賬
3.2 主要代碼片段
驗證使用者名與密碼
public StringBuffer validateUser(String username, String accountId){
boolean flag = false;
User user = userService.getUserByUserName(username);
if(user != null){
int accountId2 = user.getAccountId();
if(accountId.trim().equals("" + accountId2)){
flag = true;
}
}
StringBuffer errors2 = new StringBuffer("");
if(!flag){
errors2.append("使用者名和賬号不比對");
}
return errors2;
}
添加到購物車
//1. 擷取商品的 id
String idStr = request.getParameter("id");
int id = -1;
boolean flag = false;
try {
id = Integer.parseInt(idStr);
} catch (Exception e) {}
if(id > 0){
//2. 擷取購物車對象
ShoppingCart sc = EStoreWebUtils.getShoppingCart(request);
//3. 調用 ComputerService 的 addToCart() 方法把商品放到購物車中
flag = computerService.addToCart(id, sc);
}
if(flag){
//4. 直接調用 getComputers() 方法.
getComputers(request, response);
return;
}
response.sendRedirect(request.getContextPath() + "/error-1.jsp");
}
添加到購物車(商品頁詳情添加)
//1. 擷取商品的 id
String idStr = request.getParameter("id");
int id = -1;
boolean flag = false;
try {
id = Integer.parseInt(idStr);
} catch (Exception e) {}
if(id > 0){
//2. 擷取購物車對象
ShoppingCart sc = EStoreWebUtils.getShoppingCart(request);
//3. 調用 ComputerService 的 addToCart() 方法把商品放到購物車中
flag = computerService.addToCart(id, sc);
}
if(flag){
//4. 直接調用 getComputer() 方法.
getComputer(request, response);
return;
}
response.sendRedirect(request.getContextPath() + "/error-1.jsp");
}
業務邏輯
String accountId) {
//1. 更新 mycomputers 資料表相關記錄的 salesamount 和 storenumber
computerDAO.batchUpdateStoreNumberAndSalesAmount(shoppingCart.getItems());
int i = 10;
//2. 更新 account 資料表的 balance
accountDAO.updateBalance(Integer.parseInt(accountId), shoppingCart.getTotalMoney());
//3. 向 trade 資料表插入一條記錄
Trade trade = new Trade();
trade.setTradeTime(new Date(new java.util.Date().getTime()));
trade.setUserId(userDAO.getUser(username).getUserId());
tradeDAO.insert(trade);
//4. 向 tradeitem 資料表插入 n 條記錄
Collection<TradeItem> items = new ArrayList<>();
for(ShoppingCartItem sci: shoppingCart.getItems()){
TradeItem tradeItem = new TradeItem();
tradeItem.setComputerId(sci.getComputer().getId());
tradeItem.setQuantity(sci.getQuantity());
tradeItem.setTradeId(trade.getTradeId());
items.add(tradeItem);
}
tradeItemDAO.batchSave(items);
//5. 清空購物車
shoppingCart.clear();
}
轉載于:https://www.cnblogs.com/fengzimu/p/10942382.html