簡單的挑選一下昨天所學的重點知識模塊,以備後續的複習數據庫
1、購物車模塊
1.1購物車兩種實現的區別:!!!!!!!!
用session保存
缺點:瀏覽器關閉,session失效時保存在session中購物信息將會消失
後續優化,將購買的信息除了保存在session中之外,還要將購物的信息保存在cookie中,這樣
就解決了瀏覽器關閉購買商品信息丟失的問題(可是解決不了跟換電腦信息丟失的問題)
優勢:不用操做數據庫,能夠減小數據庫訪問壓力
數據庫中:
缺點:只用登陸的用戶才能添加購物車
頻繁的操做數據庫
優勢:瀏覽器關閉,更換電腦不受影響瀏覽器
1.2具體實現
在session中使用map<product,Interger>來保存購物車中購買商品的信息。
key:Produnct類對象,key不能重複,須要複寫hashCode和equals方法
value:該商品購買了幾件
0.session監聽:當session建立時,向session中添加個cart對象(new hashMap<Product,Interger>()) 當session 銷燬是,從session做用域中將cart刪除
1.加入購物車:
入口:從商品分頁列表頁和商品詳情頁面,點擊加入購物車按鈕
CartAddServlet:
獲取要增長的商品的id和購買的數量
根據商品id調用service業務層的根據商品id查詢商品信息的方法
將該商品對象添加到map集合中:
|-該商品首次購買,向map集合添加一條記錄。<prod,num>
|-該商品在購物車已經存在,修改map集合中prod對應元素的購買數量
新數量=原數量+本次購買的數量
2.購物車顯示
直接在購物車頁面(cart.jsp)上從session中獲取,Map<Product,Interger>
3.修改數量
將商品id和新的數量進行提交,根據pid和newNum修改map對象的對應元素
是否須要查詢數據庫???
4.購物車刪除
根據商品的id從map集合中刪除該元素cookie
1.3具體開發實現
1.3.1session監聽開發
1.建立一個類MyHttpSessionListener,實現指定的接口HttpSessionListener
而後實現接口中的抽象方法 session
1.3.2
爲了區分是否爲同一件商品,jsp
1.開發cart.jsp頁面上修改
2.接受參數優化
2、訂單模塊
訂單添加成功時 要對應商品的庫存減小
Map<product,Interger> cart -->數據庫中
1.向orders添加一條記錄
2.向orderitem表中添加若干條記錄
3.修改products表中若干條記錄,修改剩餘庫存
準備工做
1.建立訂單表和訂單項表
order訂單表
收貨地址
支付方式
訂單總金額
訂單號
orderitem訂單項
order_id
product_id
buynum 對象