1. 程式人生 > >jsp中購物車的實現思路

jsp中購物車的實現思路

 1.建立使用者user實體類,該類中有cart購物車屬性,幷包含一些列有關購物車的方法,如getCart(),remove(),buy()等
2.購物車被建立之後就一直被放在user物件中儲存在session中,購物車就是一個Map集合,鍵為商品id,值為商品數量,
  此處注意Map集合的鍵型別為Object,如果商品id為int型別,需轉成String型別,因為int不是Object型別,Integer才是。
3.如何獲取到購物車中的所有商品????
  使用Map集合的keySet()方法獲取到Map集合中的所有鍵值,該方法返回的是所有鍵值組成的Set集合,然後遍歷該set集合,
  依次拿出各個商品的id值,並可通過Map集合的get("key")方法獲取到各個商品id對應的商品數量,同時在遍歷set集合的時候,
  呼叫根據id查詢商品資訊的方法獲取到商品的除id和數量外的其他資訊,然後就可在購物車中顯示,包括總價格資訊
-------這裡要注意:在商品的實體類中不包含購買數量屬性,該屬性是業務處理過程中生成的屬性,習慣上使用vo物件進行處理,
       目前我的實現比較簡單,就是在商品類中添加了數量屬性,但該屬性在資料庫並無對應欄位,只是用來封裝進實體類物件之中,
       如此處理就有一個問題:根據商品id查詢資料庫獲取的商品物件中並無數量屬性,如果在呼叫查詢方法之前將商品數量設定進
       商品物件中,在呼叫了查詢方法之後商品物件就會被更新,數量資訊會拿不到,因此必須在呼叫了產訊方法之後在設定數量資訊
       到物件中。。。。
4.在建立資料庫時注意:訂單表和訂單詳情表   -------  兩個表的id欄位名一致,並且均不是主鍵,也不設定自增
  訂單詳情表用來儲存使用者訂單的具體資訊,如果某個使用者購買了多件商品,那麼在點選結帳按鈕時迴圈遍歷set集合,依次將資訊新增進
  商品詳情表中,這樣在該表中使用者購買了幾件商品就會產生幾條記錄,並且這些記錄的詳細訂單oid值是一樣的,都對應訂單表的某個id值,
  而訂單表的id值不是重複的,此處在往訂單詳情表中新增資訊時,首先獲取到訂單詳情表的最大id值,然後+1,即為目前訂單的id,在呼叫
  完新增方法之後,再呼叫查詢最大id的方法獲取到最大id值(此時不再+1),該值又作為訂單表的id進行新增,如此一來兩個表之間的id值就 變得一致