트레이닝
12. SellerDB (Map)
Romenest
2021. 8. 31. 09:50
수정, 보안
판매자 한명조회, 해당판매자의 물품까지 조회
Map 사용
// 리턴이 object
public Seller selectSellerOne(Seller seller) throws Exception {
//sellerCollection.find(Filters.eq("_id",seller.getSel_id()));
//Bson은 find를 없애면서 추가해야함, 이값은 eq.의 속성 crtl+space로 확인가능
Bson queryBson = Filters.eq("_id",seller.getSel_id());
//넘어오는 값 seller의 _id 와 동일 해야한다는 조건
Bson sortBson = Filters.eq("_id",1);
MongoCursor<Document> cursor = sellerCollection.find(queryBson).sort(sortBson).iterator();
if(cursor.hasNext()){ //cursor에 내용이 있다면 변환시킨 값인 retSeller를 조회
Document doc = cursor.next();
// Document -> Seller객체로 변환시켜 전송해야만 정상적으로나옴
//변환할 Seller 틀 생성
Seller retSeller = new Seller();
//doc에 있는걸 빼서 retSeller에 넣어주면됨
//setSel_id 속성을 보면 long속성이 필요 따라서 doc의 getLong과 키인 _id 입력
retSeller.setSel_id(doc.getLong("_id"));
retSeller.setName(doc.getString("name"));
//판매자의 물품까지도 보이게 해야함 = setList기능
//물품은 List<Item>타입 setList의 반환값을 보면 확인가능
//retSeller.setList(ItemDB.getInstance().selectItemWhere(seller)) 이랬던게 아래 형식으로 전환
List<Item> itemList = ItemDB.getInstance().selectItemWhere(seller);
//물품목록은 ItemDB에서 찾으면됨
//ItemDB에서 판매자정보에 해당하는 물품만 반환하는 기능 호출
retSeller.setList(itemList);
return retSeller;
}
return null;
}
//판매자 1명 조회 : 리턴이 map
// Map == seller 1명을 조회해서 리턴되는 값
// 목록으로 할때는 List<Seller>로 목록을 받음
// List<Seller> == List<Map<String,Object>> 여러명이 리턴됨
// Map 자체를 하나의 오브젝트로 보면됨
public Map<String, Object> selectSellerOneMap(Seller seller) throws Exception {
// 조건
Bson queryBson = Filters.eq("_id", seller.getSel_id());
MongoCursor<Document> cursor = sellerCollection.find(queryBson).iterator();
if (cursor.hasNext()) {
Document doc = cursor.next();
// Document 타입을 Map타입으로 전환
Map<String, Object> mapSeller = new HashMap<String, Object>();
// Map은 put을 이용해 데이터 입력, get,set이 아니다
mapSeller.put("_id", doc.getLong("_id"));
mapSeller.put("name", doc.getLong("name"));
List<Item> itemList = ItemDB.getInstance().selectItemWhere(seller);
mapSeller.put("itemList", itemList);
return mapSeller;
}
return null;
}
// 판매자 전체조회 Map 사용
public List<Map<String, Object>> selectSellerMap() throws Exception {
Bson sortBson = Filters.eq("_id", -1);
MongoCursor<Document> cursor = sellerCollection.find().sort(sortBson).iterator();
List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
while (cursor.hasNext()) {
Document doc = cursor.next();
// document -> Map<String,object> 타입으로 변환
Map<String, Object> map = new HashMap<String, Object>();
map.put("_id", doc.getLong("_id"));
map.put("name", doc.getString("name"));
Seller seller = new Seller();
seller.setSel_id(doc.getLong("_id"));
List<Item> itemlist = ItemDB.getInstance().selectItemWhere(seller);
map.put("itemlist", itemlist);
list.add(map);
}
return list;
}
}