① 網站購物車是怎麼個原理。對資料庫表配哪些欄位想不明白。請假大俠們。
第一:做購物車來,一自般來說是不存入資料庫這樣數據量比較大並且查詢效率慢,所以一般購物車都用Session,或Cookie來實現,建一個購物車實體類,大概有這些欄位,商品ID,用戶ID,數量...等這可以根據自己需要來設置,然後比如購買一件商品添加到購物車就創建一個hashtable來保存購物車里的信息,然後把hashtable保存到Session或Cookie,大致就這樣。
第二:訂單,你說的那個訂單一般都有一個訂單表的。首先要弄清楚流程,肯定是用戶先將產品加入購物車,然後再提交訂單的。為什麼會訂單下了以後還關購物車的事呢?購物車只是臨時保存用戶購買產品的地方。就像超市裡去賣東西首先推一個車,然後去選購你要的產品,最後付款。對應這車只是你保存東西的一個工具,當你購買完畢後就不會和他有什麼聯系了。如果你後面需要退貨你也只管那張單據(對應產品訂單)而不會和你購物車車上聯系。
不知道我這樣講你是否明白!
② 求Java語言為書城設計一個簡單購物車類。
public class ShoppingCart {//購物車類
private Procted prod;//商品類,存放商品信息
private int num;//商品數量
public Procted getProd() {
return prod;
}
public void setProd(Procted prod) {
this.prod = prod;
}
public int getNum() {
return num;
}
public void setNum(int num) {
this.num = num;
}
}
public class Procted {//商品類
private String prodName;//商品名稱
private Double marketPrice;//市場價
private Double sellPrice;//本店價
private Double save;//優惠
private Short points;//積分
public String getProdName() {
return prodName;
}
public void setProdName(String prodName) {
this.prodName = prodName;
}
public Double getMarketPrice() {
return marketPrice;
}
public void setMarketPrice(Double marketPrice) {
this.marketPrice = marketPrice;
}
public Double getSellPrice() {
return sellPrice;
}
public void setSellPrice(Double sellPrice) {
this.sellPrice = sellPrice;
}
public Double getSave() {
return save;
}
public void setSave(Double save) {
this.save = save;
}
public Short getPoints() {
return points;
}
public void setPoints(Short points) {
this.points = points;
}
}
有用請採納
③ hibernate編程,設計實體類時,購物車與商品的關聯關系是一對多還是多對多
多對多。。。
④ java web 做購物車的大概思路,和實現步奏是什麼
購物車管理模塊主要功能有如下幾個部分:(1)創建購物車 當客戶登錄後,系統會給客戶創建一個購物車放入伺服器的Session會話中。使客戶在整個會話中都擁有一個相同的購物車。這里主要運用了Http協議中的會話機制,將購物車保存在客戶的會話中,這樣在整個客戶游覽不同頁面商品的過程中,都會使用同一個購物車對象。 具體執行步驟:(1)從客戶的請求對象中獲取Session會話對象(2)從會話對象中獲取購物車對象(3)判斷是購物車對象是不是空的,如果是空是就創建一個 /* * 在監聽到session被創建之後,就立即向session中添加一個購物車Car; */ public void sessionCreated(HttpSessionEvent arg0) { HttpSession session = arg0.getSession(); Cart cart=new Cart(); session.setAttribute("cart", cart); } /* * 從session中獲得購物車 */ Cart cart = (Cart) session.getAttribute("cart"); if (cart == null) { cart = new Cart(); }(2)向購物車中添加一個商品項 客戶在查看網頁上的一個商品時,當向伺服器發送一個「添加到購物車」的請求時,會執行這個功能。功能執行過程:(1)從客戶請求對象中獲取商品的ID(2)調用業務層的方法根據商品ID去數據查詢商品的信息,返回商品對象(3)從商品對象中獲取商品名,商品價格,來構建一個商品項對象(4)從Session會話中獲取購物車對象(5)調用業務層的方法來根據購物車對象和商品項對象來執行添加操作(6)將些商品項對象放入到購物車中 部分實現代碼: /* * 從資料庫中把商品取到; */ ProctService proctService = (ProctService) ServiceFactory.getInstance().getService(Globals.PRODUCT_SERVICE); Integer id = Integer.parseInt(request.getParameter("proctid")); Proct proct = proctService.getProctById(id); /* * 在向購物車中添加商品的時候會判斷商品是否已經存在, * 已存在的就不讓在加入了; */ if (cart.isExist(id)) { message = "該商品已經存在!請<a onclick='javascript:history.go(-1)'>返回</a>!"; request.setAttribute("message", message); return mapping.findForward("error"); } else { /* * 向購物車添加一個商品; */ cart.addCart(proct); session.setAttribute("cart", cart); return mapping.findForward("addcartsuccess"); }
⑤ java中寫商品購物車怎麼實現每種商品總價都隨商品數量變化而變化
一般就是你在頁面增加監聽事件,每次修改商品數量就重新計算總價
⑥ 我寫了一個購物車的小項目,在顯示用戶購買的商品時,在後台多表查詢的,showMyCart()方法,返回是List
創建一個業務類,存放你的購物車中需要的數據,也就是多張表公共展示的最後數據專
然後把這個業務類加屬入List
例如:你根據A表的 a b c 和B表的 d e...查詢的數據,而 a b c d e 又是你購物車需要的數據
創建實體類 定義屬性a b c d e 給予get set方法,假如類名D
List<D>
⑦ java購物車功能怎麼實現
設置基本的實體類就不用說了吧。再設置一個購物車的實體類,介面和實現類。利用Session機制來存儲所選的物品,然後同意購物的時候將session中所存儲的物品List存入表中。
⑧ JSP編寫的網購系統action.java代碼如下,購物車是通過什麼方法怎麼實現的
做購物車,一般來說是不存入資料庫這樣數據量比較大並且查詢效率慢,所以一般購物車都用Session,或Cookie來實現,建一個購物車實體類,大概有這些欄位,商品ID,用戶ID,數量...等這可以根據自己需要來設置,然後比如購買一件商品添加到購物車就創建一個hashtable來保存購物車里的信息,然後把hashtable保存到Session或Cookie,大致就這樣。
⑨ Java購物車分頁
1.使用session來存儲當前頁數,翻下頁或者點鏈接多少頁時再去session中讀出剛剛保存的當前頁內數,取出容來後按邏輯做+-*/運算後傳頁數參數進去,才能確保分頁正確
2.在實體類對象中加入一個屬性即插入時間的屬性。你可以命名為create_time,然後寫個比較器按create_time的規則來比較實體對象就OK了!
你按照我的思路去做不行把我拉去十字架上砍了!
你把map放在session中,那麼取出來的應該是可以強制轉換為map的,轉換為map後再按map里的方法(map里有取出多少行的方法吧,如果沒有方法的話你可以取出鍵值,將鍵值放到list里以後,再從list里取)。
⑩ Java初學者,哪位友友能幫我設計一個簡單的類似超市購物車的程序,參考一下~謝謝!
以前學習java又做個實例,挺值得學習的。
1.首先我先列出我們所需要的java類結構。
1).java --------- 模擬存儲商品的資料庫。
2)McBean.java ------------ 商品實體類,一個普通的javabean,裡面有商品的基本屬性。
3)OrderItemBean.java --- 訂單表。
4)ShoppingCar.java ------ 這個就是最主要的購物車,當然比較簡單。
5)TestShoppingCar.java --- 這個是測試類。
2.下面貼出具體代碼並帶關鍵注釋。
---Database.java
public class Database {
/*採用Map存儲商品數據,為什麼呢?我覺得這個問題你自己需要想下。
* Integer 為Map的key值,McBean為Map的value值。
*/
private static Map<Integer, McBean> data = new HashMap<Integer, McBean>();
public Database() {
McBean bean = new McBean();
bean.setId(1);
bean.setName("地瓜");
bean.setPrice(2.0);
bean.setInstuction("新鮮的地瓜");
data.put(1, bean);//把商品放入Map
bean = new McBean();
bean.setId(2);
bean.setName("土豆");
bean.setPrice(1.2);
bean.setInstuction("又好又大的土豆");
data.put(2, bean);//把商品放入Map
bean = new McBean();
bean.setId(3);
bean.setName("絲瓜");
bean.setPrice(1.5);
bean.setInstuction("本地絲瓜");
data.put(3, bean);//把商品放入Map
}
public void setMcBean(McBean mcBean){
data.put(mcBean.getId(),mcBean);
}
public McBean getMcBean(int nid) {
return data.get(nid);
}
}
---McBean.java
public class McBean {
private int id;//商品編號
private String name;//商品名
private double price;//商品價格
private String instuction;//商品說明
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
public String getInstuction() {
return instuction;
}
public void setInstuction(String instuction) {
this.instuction = instuction;
}
}
---ShoppingCar.java
public class ShoppingCar {
private double totalPrice; // 購物車所有商品總價格
private int totalCount; // 購物車所有商品數量
private Map<Integer, OrderItemBean> itemMap; // 商品編號與訂單項的鍵值對
public ShoppingCar() {
itemMap = new HashMap<Integer, OrderItemBean>();
}
public void buy(int nid) {
OrderItemBean order = itemMap.get(nid);
McBean mb;
if (order == null) {
mb = new Database().getMcBean(nid);
order = new OrderItemBean(mb, 1);
itemMap.put(nid, order);
update(nid, 1);
} else {
order.setCount(order.getCount() + 1);
update(nid, 1);
}
}
public void delete(int nid) {
OrderItemBean delorder = itemMap.remove(nid);
totalCount = totalCount - delorder.getCount();
totalPrice = totalPrice - delorder.getThing().getPrice() * delorder.getCount();
}
public void update(int nid, int count) {
OrderItemBean updorder = itemMap.get(nid);
totalCount = totalCount + count;
totalPrice = totalPrice + updorder.getThing().getPrice() * count;
}
public void clear() {
itemMap.clear();
totalCount = 0;
totalPrice = 0.0;
}
public void show() {
DecimalFormat df = new DecimalFormat("¤#.##");
System.out.println("商品編號\t商品名稱\t單價\t購買數量\t總價");
Set set = itemMap.keySet();
Iterator it = set.iterator();
while (it.hasNext()) {
OrderItemBean order = itemMap.get(it.next());
System.out.println(order.getThing().getId() + "\t"
+ order.getThing().getName() + "\t"
+ df.format(order.getThing().getPrice()) + "\t" + order.getCount()
+ "\t" + df.format(order.getCount() * order.getThing().getPrice()));
}
System.out.println("合計: 總數量: " + df.format(totalCount) + " 總價格: " + df.format(totalPrice));
System.out.println("**********************************************");
}
}
---OrderItemBean.java
public class OrderItemBean {
private McBean thing;//商品的實體
private int count;//商品的數量
public OrderItemBean(McBean thing, int count) {
super();
this.thing = thing;
this.count = count;
}
public McBean getThing() {
return thing;
}
public void setThing(McBean thing) {
this.thing = thing;
}
public int getCount() {
return count;
}
public void setCount(int count) {
this.count = count;
}
}
---TestShoppingCar.java
package com.shop;
public class TestShoppingCar {
public static void main(String[] args) {
ShoppingCar s = new ShoppingCar();
s.buy(1);//購買商品編號1的商品
s.buy(1);
s.buy(2);
s.buy(3);
s.buy(1);
s.show();//顯示購物車的信息
s.delete(1);//刪除商品編號為1的商品
s.show();
s.clear();
s.show();
}
}
3.列印輸出結果
商品編號 商品名稱 單價 購買數量 總價
1 地瓜 ¥2 3 ¥6
2 土豆 ¥1.2 1 ¥1.2
3 絲瓜 ¥1.5 1 ¥1.5
合計: 總數量: ¥5 總價格: ¥8.7
**********************************************
商品編號 商品名稱 單價 購買數量 總價
2 土豆 ¥1.2 1 ¥1.2
3 絲瓜 ¥1.5 1 ¥1.5
合計: 總數量: ¥2 總價格: ¥2.7
**********************************************
商品編號 商品名稱 單價 購買數量 總價
合計: 總數量: ¥0 總價格: ¥0
**********************************************
4.打字太累了,比較匆忙,但是主要靠你自己領會。哪裡不清楚再提出來。