@Service
// 삭제
@Override
public int deleteItemOne(long code) {
try {
Query query = new Query();
Criteria criteria = Criteria.where("_id").is(code);
query.addCriteria(criteria);
DeleteResult result = mongodb.remove(query, Item.class);
if (result.getDeletedCount() == 1L) {
return 1;
}
return 0;
} catch (Exception e) {
e.printStackTrace();
return -1;
}
}
// 수정
@Override
public int updateItem(Item item) {
try {
Query query = new Query().addCriteria(Criteria.where("_id").is(item.getCode()));
// query.addCriteria(Criteria.where("_id").is(item.getCode()));
Update update = new Update();
update.set("name", item.getName());
update.set("price", item.getPrice());
update.set("quantity", item.getQuantity());
if (item.getFilesize() > 0) { // 파일이 첨부 되었다면
update.set("filename", item.getFilename());
update.set("filetype", item.getFiletype());
update.set("filesize", item.getFilesize());
update.set("filedata", item.getFiledata());
}
UpdateResult result = mongodb.updateFirst(query, update, Item.class);
if (result.getModifiedCount() == 1L) {
return 1;
}
return 0;
} catch (Exception e) {
e.printStackTrace();
return -1;
}
}
@Controller
// 물품 삭제
@GetMapping(value = "/delete")
public String deleteGET(
@RequestParam(name = "code") long code) {
int ret = itemDB.deleteItemOne(code);
if (ret == 1) {
return "redirect:/item/selectlist";
}
return "redirect:/item/selectlist";
}
2-1. 수정화면 불러오기 GET
// 물품 수정(화면 불러오기)
@GetMapping(value = "/update")
public String updateGET(
Model model,
@RequestParam(name = "code") long code) {
// DB에서 1개의 정보를 읽음
Item item = itemDB.selectOneItem(code);
// model로 만들어서 jsp로 던짐
model.addAttribute("item", item);
// System.out.println("model ===> " + model);
return "item/update";
}
2-2. 실제 수정 POST
// 물품 수정(실제수정)
@PostMapping(value = "/update")
public String updatePOST(
@ModelAttribute Item item,
@RequestParam(name = "image") MultipartFile file) throws IOException {
if (!file.isEmpty()) {
item.setFiledata(file.getBytes());
item.setFilename(file.getOriginalFilename());
item.setFilesize(file.getSize());
item.setFiletype(file.getContentType());
}
int ret = itemDB.updateItem(item);
if (ret == 1) {
return "redirect:/item/selectlist";
}
return "redirect:/item/update?code=" + item.getCode();
}