Spring Boot JPA,타임리프

상품 삭제

작성자
vita
작성일
2023-11-15 23:03
조회
132

상품 삭제의 전반적인 흐름은 아래와 같습니다.


1. detail.html에서 [삭제] 버튼을 누르면 http://localhost/delete 주소를 요청하고 ProductController의 delete() method가 호출됩니다.

2. Controller에서 받은 상품코드를 repository에 보냅니다.

3. repository에서 delete query가 실행되어 상품코드에 해당하는 레코드가 삭제됩니다.

4. Controller에서 다시 http://localhost/ 로 이동하여 상품목록 화면에 반영됩니다.


[해설]


    @PostMapping("delete")


post 방식으로 호출하므로 @PostMapping을 사용합니다.


    public String delete(long productCode) {


상품코드가 productCode 변수에 전달됩니다.


        Optional<Product> opt = productRepository.findById(productCode);

        Product dto = opt.get();


해당 상품이 존재하지 않으면 NullPointerException이 발생하므로 Optional 객체로 처리합니다.


        String filename = dto.getFilename();


첨부파일의 이름을 조회합니다.


        if (filename != null && !filename.equals("-")) {


첨부파일이 존재하는 경우


        File f = new File(upload_path + filename);

        if (f.exists())

                f.delete();

        }


파일 정보를 읽어오고 파일이 존재하면 삭제합니다.


        productRepository.deleteById(productCode);


레코드를 삭제합니다.


        return "redirect:/";


상품 목록으로 이동합니다.


[실행 결과]


상품 상세 화면에서 [삭제] 버튼을 클릭하면 상품이 삭제됩니다.








이제 모든 작업이 완료되었습니다. 

여기까지 실습하시느라 대단히 수고가 많으셨습니다.

간단한 예제이지만 스프링 부트 JPA의 기본적인 실행 과정에 대해 설명을 드렸습니다. 

이 방법을 활용하여 다양한 기능을 확장하여 만들 수 있을 것입니다.

전체 0

전체 19
번호 제목 작성자 작성일 추천 조회
19
상품 삭제
vita | 2023.11.15 | 추천 0 | 조회 132
vita 2023.11.15 0 132
18
상품 수정
vita | 2023.11.15 | 추천 0 | 조회 112
vita 2023.11.15 0 112
17
상품 상세
vita | 2023.11.15 | 추천 0 | 조회 125
vita 2023.11.15 0 125
16
상품 등록
vita | 2023.11.15 | 추천 0 | 조회 105
vita 2023.11.15 0 105
15
상품 목록
vita | 2023.11.15 | 추천 0 | 조회 146
vita 2023.11.15 0 146
14
14. detail.html
vita | 2023.11.15 | 추천 0 | 조회 119
vita 2023.11.15 0 119
13
13. write.html
vita | 2023.11.15 | 추천 0 | 조회 135
vita 2023.11.15 0 135
12
12. list.html
vita | 2023.11.15 | 추천 0 | 조회 130
vita 2023.11.15 0 130
11
11. error.html
vita | 2023.11.15 | 추천 0 | 조회 123
vita 2023.11.15 0 123
10
10. main.css
vita | 2023.11.15 | 추천 0 | 조회 119
vita 2023.11.15 0 119
Scroll to Top