我正在編寫代碼以實施庫存模型。作爲其中的一部分,我必須從數據庫獲取Items並設置Item的屬性,並將該Item對象添加到列表中,並在列表中執行少量功能。數據庫中有三個表格,每個表格都包含3行。但問題是隻有最後一張表中的最後一行被插入全部九次。 請幫我看看問題出在哪裏。 readAllItemsFromDb方法必須完成上面提到的任務,並返回一個Item對象列表。 Item類包含id,description,weight,price,manufacturingDate,useBeforeMonths等字段以及它們的set和get方法。無法從Java中的數據庫中讀取表中的行
我的方法的代碼是follows--
public List<Item> readAllItemsFromDb() {
// TODO Auto-generated method stub
List<Item> list=new ArrayList<Item>();
Item item=new Item();
Milk milk=new Milk();
Cheese cheese=new Cheese();
Wheat wheat=new Wheat();
String cheese_type=new String();
String milk_type=new String();
String wheat_type=new String();
String ingred_cheese=new String();
String cheese_query="select id,description,weight,price,mfg_date,UseBeforeInMonths from cheese_tbl;";
String milk_query="select id,description,weight,price,mfg_date,UseBeforeInMonths from milk_tbl;";
String wheat_query="select id,description,weight,price,mfg_date,UseBeforeInMonths from wheat_tbl;";
try {
con=dcm.getConnection();//Theres' no problem with Connection
st=con.createStatement();
rs=st.executeQuery(cheese_query);
while(rs.next()){
item.setId(rs.getInt(1));
item.setDescription(rs.getString(2));
item.setWeight(rs.getFloat(3));
item.setPrice(rs.getFloat(4));
item.setManufacturingDate(rs.getDate(5));
item.setUseBeforeMonths(rs.getInt(6));
list.add(item);
}
rs=st.executeQuery(milk_query);
while(rs.next()){
item.setId(rs.getInt(1));
item.setDescription(rs.getString(2));
item.setWeight(rs.getFloat(3));
item.setPrice(rs.getFloat(4));
item.setManufacturingDate(rs.getDate(5));
item.setUseBeforeMonths(rs.getInt(6));
list.add(item);
}
rs=st.executeQuery(wheat_query);
while(rs.next()){
item.setId(rs.getInt(1));
item.setDescription(rs.getString(2));
item.setWeight(rs.getFloat(3));
item.setPrice(rs.getFloat(4));
item.setManufacturingDate(rs.getDate(5));
item.setUseBeforeMonths(rs.getInt(6));
list.add(item);
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
return list;
}