Spring #9 - delete/update

김형우·2022년 3월 3일
0

Spring

목록 보기
10/19

1. ItemDBImpl.java

  • @Service
  1. delete
// 삭제
@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;
    }
}
  1. update

// 수정
@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;
    }
}

2. ItemController.java

  • @Controller
  1. 삭제
// 물품 삭제
@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";
}
  1. 수정

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();
}
profile
The best

0개의 댓글