Java 일지 #15 (20210827) 판매자 조회(object, map)
15. 판매자 조회(1명, 전체)
-판매자 1명 조회(objet)
*코드 입력(SellerDB.java)
// 판매자 1명 조회 : 리턴이 object
public Seller selectSellerOne(Seller seller) throws Exception {
Bson queryBson = Filters.eq("_id", seller.getSid());
Bson sortBson = Filters.eq("_id", 1);
MongoCursor<Document> cursor = sellerCollection.find(queryBson).sort(sortBson).iterator();
if (cursor.hasNext()) {
Document doc = cursor.next();
// Document -> Seller 객체
Seller retSeller = new Seller(); // 담을 변수 생성
retSeller.setSid(doc.getLong("_id"));
retSeller.setName(doc.getString("name"));
List<Item> itemlist = ItemDB.getInstance().selectItemWhere(seller);
retSeller.setList(itemlist); // List<Item> 물품목록
return retSeller;
}
return null;
}
*출력 확인(App.java)
**판매자 id = 1001
// 판매자 1명 조회
Seller seller = new Seller();
seller.setSid(1001L);
// 판매자 1명 조회(object)
Seller retsSeller = SellerDB.getInstance().selectSellerOne(seller);
System.out.println(retsSeller.getSid());
System.out.println(retsSeller.getName());
// List<Item> => Item
// for(Item 변수 : List<Item> ){ }
for (Item item : retsSeller.getList()) {
// toString()은 개발 시 확인 용도. 실제 웹에서 출력되지 않음
System.out.println(item.toString());
}
-판매자 1명 조회(map)
*코드 입력(SellerDB.java)
// 판매자 1명 조회 : 리턴이 map
// map == Seller 1명을 조회해서 리턴되는 값
// List<Seller> == List<Map<String, Object>> 여러명이 리턴됨
public Map<String, Object> selectSellerOneMap(Seller seller) throws Exception {
Bson queryBson = Filters.eq("_id", seller.getSid());
MongoCursor<Document> cursor = sellerCollection.find(queryBson).iterator();
if (cursor.hasNext()) {
Document doc = cursor.next();
// Document -> map 변경
// Object -> 어떤 타입이든 저장 가능
Map<String, Object> retMap = new HashMap<String, Object>();
retMap.put("_id", doc.getLong("_id")); // long
retMap.put("name", doc.getString("name")); // String
List<Item> itemlist = ItemDB.getInstance().selectItemWhere(seller);
retMap.put("itemList", itemlist); // List<Item>
return retMap;
}
return null;
}
*출력 확인(App.java)
**판매자 id = 1001
// 판매자 1명 조회
Seller seller = new Seller();
seller.setSid(1001L);
// 판매자 1명 조회(map)
Map<String, Object> map = SellerDB.getInstance().selectSellerOneMap(seller);
System.out.println((long) map.get("_id"));
System.out.println((String) map.get("name"));
@SuppressWarnings("unchecked") // 체크 해제
List<Item> itemList = (List<Item>) map.get("itemList");
for (Item item : itemList) {
System.out.println(item.toString());
}
-판매자 전체 조회(object)
*코드 입력(SellerDB.java)
public List<Seller> selectSeller() throws Exception {
MongoCursor<Document> cursor = sellerCollection.find().sort(Filters.eq("_id", -1)).iterator();
// Seller[] list1 = new Seller[ ];
List<Seller> list = new ArrayList<Seller>();
while (cursor.hasNext()) {
Document doc = cursor.next(); // 판매자 id, 판매자 이름
Seller seller = new Seller();
seller.setSid(Long.parseLong(doc.get("_id").toString()));
seller.setName(doc.get("name").toString());
List<Item> ItemList = ItemDB.getInstance().selectItemWhere(seller);
seller.setList(ItemList);
// 판매자가 등록했던 물품의 정보를 보관
list.add(seller);
}
return list;
}
*출력 확인(App.java)
// 판매자 전체 조회(object)
List<Seller> list2 = SellerDB.getInstance().selectSeller();
for (Seller seller2 : list2) {
System.out.println(seller2.toString());
}
-판매자 전체 조회(map)
*코드 입력(SellerDB.java)
public List<Map<String, Object>> selectSellerMap() throws Exception {
Bson sortBson = Filters.eq("_id", -1); // _id 기준 내림 차순
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")); // long
map.put("name", doc.getString("name")); // String
Seller seller2 = new Seller();
seller2.setSid(doc.getLong("_id"));
List<Item> itemlist = ItemDB.getInstance().selectItemWhere(seller2);
map.put("itemList", itemlist); // List<Item>
list.add(map);
}
return list;
}
*출력 확인(App.java)
// 판매자 전체 조회(map)
List<Map<String, Object>> list = SellerDB.getInstance().selectSellerMap();
for (Map<String, Object> tMap : list) {
System.out.println(tMap.get("_id"));
System.out.println(tMap.get("name"));
System.out.println(tMap.get("itemList").toString());
}