import java.util.ArrayList;
創(chuàng)新互聯(lián)科技有限公司專業(yè)互聯(lián)網(wǎng)基礎(chǔ)服務(wù)商,為您提供四川樂山服務(wù)器托管,高防主機,成都IDC機房托管,成都主機托管等互聯(lián)網(wǎng)服務(wù)。
import java.util.HashMap;
import java.util.Iterator;public class ShoppingCartManager {
HashMapString, String hm=new HashMapString, String();
float totlePrice=0;
//添加book到購物車
public void addBook(String bookId,String bookQuantity){
if(hm.containsKey(bookId)){
int value=Integer.parseInt(hm.get(bookId));
value+=Integer.parseInt(bookQuantity);
hm.put(bookId, value+"");
}else{
hm.put(bookId, bookQuantity);
}
}
//修改數(shù)量
public void updateQuantity(String bookId,String bookQuantity){
hm.put(bookId, bookQuantity);
}
//獲取購物車的所有信息 并計算總價
public ArrayListBookBean getShoppingCart(){
ArrayListBookBean al=new ArrayListBookBean();
IteratorString i=hm.keySet().iterator();
String ids="";
BookTableManager btm=new BookTableManager();
while(i.hasNext()){
ids=ids+","+i.next();
}
al= btm.selectByBookIds(ids);
totlePrice=0; //清空總價,防止無限累計
for(int j=0;jal.size();j++){
BookBean bb=al.get(j);
totlePrice+=bb.getPrice()*Integer.parseInt(getQuantityById(bb.getBookId()+""));
}
return al;
}
//獲取總價
public float getTotlePrice(){
return totlePrice;
}
//根據(jù)ID獲取數(shù)量
public String getQuantityById(String id){
String quantity=hm.get(id);
return quantity;
}
//清空購物車
public void clear(){
hm.clear();
}
//刪除購物車中的一本書
public void deleteById(String id){
hm.remove(id);
}
}
要使用Java編寫超市購物程序,您需要使用Java數(shù)據(jù)庫編程技術(shù)來連接到您的數(shù)據(jù)庫并執(zhí)行相關(guān)的數(shù)據(jù)庫操作。在Java中,您可以使用JDBC(Java數(shù)據(jù)庫連接)API來連接到數(shù)據(jù)庫并執(zhí)行SQL語句。例如,您可以使用JDBC API來執(zhí)行以下操作:
創(chuàng)建數(shù)據(jù)庫連接
執(zhí)行增刪改查(CRUD)操作
提交或回滾事務(wù)
執(zhí)行存儲過程和函數(shù)
查詢數(shù)據(jù)庫元數(shù)據(jù)
此外,您還可以使用Java的面向?qū)ο缶幊碳夹g(shù)來封裝數(shù)據(jù)庫操作,以便更方便地在您的程序中使用。例如,您可以創(chuàng)建一個類來表示超市商品,并定義一些方法來執(zhí)行商品的增刪改查操作。這樣,您就可以在程序中通過調(diào)用這些方法來簡單地完成對數(shù)據(jù)庫的操作,而不需要編寫復(fù)雜的SQL語句。
有兩個地方錯了:
主要的一個錯誤是BookDetail類不存在,而你在ShopCar
類中引用了BookDetail,得寫一個這樣的類才行。
第二個錯誤的地方為你在類中使用了包,如果使用包的話就不能像一般的類那樣直接使用javac 類名.java這樣的形式編譯了。
而要使用 javac -d . 類名.java才行,其中的-d .的意思是把輸出的.class文件放以包名稱的形式到當(dāng)前文件夾下,當(dāng)然你也可以輸入其它路徑也是可以的。
運行的話使用java 包名+類名就可以了,其中是以.分開包和類名稱的。
看一下javac的幫助和java的幫助,里面說的很明白的。
編譯的時候使用javac -d . 類名.java
運行的時候 java 包名.類名
注意如果包里又有子包的話運行的時候包與子包使用.分隔開來