인벤토리 모델을 구현하는 코드를 작성 중입니다. 그 일환으로 데이터베이스에서 항목을 가져 와서 항목의 속성을 설정하고 해당 항목 개체를 목록에 추가하여 목록에서 몇 가지 기능을 수행해야합니다. 데이터베이스에는 3 개의 테이블이 있으며 각 테이블에는 3 개의 행이 있습니다. 그러나 문제는 마지막 테이블의 마지막 행만 9 번 모두 삽입된다는 것입니다. 코드에서 문제의 위치를 찾도록 도와주세요. readAllItemsFromDb 메서드는 위에서 언급 한 작업을 수행하고 Item 객체 목록을 반환해야합니다. Item 클래스에는 ID, 설명, 무게, 가격, 제조일, useBeforeMonths 및 해당 집합 및 가져 오기 메서드와 같은 필드가 포함됩니다.
방법에 대한 내 코드는 다음과 같습니다.
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;
}
while 루프에서 각 반복이 시작될 때 새 Item 객체를 만들어야합니다.
while(rs.next()){
item = new Item();
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 = new Item();
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 = new Item();
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);
}
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다