본문 바로가기
✨ Back-end/Spring-Boot

[Spring] 쇼핑몰 - 35 장바구니 상품 수량 수정(UPDATE)

by 환풍 2023. 4. 6.
728x90
반응형

수정 (UPDATE)


cart-mapper.xml

장바구니 상품 수량을 수정하기 위해서 먼저 mapper에서 수정 쿼리 update를 만들어주었다.

상품 수량 데이터 cartCnt가 필요하고, 어떤 상품을 업데이트 해줄 것인지 알기 위해 cartCode도 가지고왔다.

Service 인터페이스, 클래스

매개변수 및 리턴 타입 결정 방법(우선적으로 실행 시 쿼리를 작성)
매개변수 : 쿼리 실행 시 빈 값을 채울 용도
1. 쿼리에서 채워 줄 값이 없을 경우 : 매개변수 없음
2. 채워줄 값이 하나일 경우
 2-1) 채워줄 값이 숫자인 경우 : 매개변수 int형 하나
 2-2) 채워줄 값이 문자인 경우 : 매개변수 String형 하나
3. 채워줄 값이 여러개인 경우 : 매개변수는 VO 객체.
리턴타입 : 쿼리 실행 결과를 어떻게 받아올지에 대한 정의
INSERT, UPDATE, DELETE 쿼리 실행 결과는
리턴타입을 int 혹은 void 사용하면됨. int로 받을 땐 return 필요o  void는 필요x
SELECT 쿼리 결과의 리턴타입은 크게 두 가지로 나뉨.
조회결과 데이터가 무조건 한줄만 조회 : VO 객체.
조회 결과 데이터가 0줄이상 가변적일 경우 : List<VO> 객체.

cart-html

html에서 수정버튼을 클릭하면 submit로 인해 form태그에 감싸져있는 name 값들을 가지고 컨트롤러로 이동한다.

hidden으로 cartCode와, cartCnt 값에 name 속성을 주어 컨트롤러로 이동시켰다.

CartController 컨트롤러

cartCode와 cartCnt 값 두개를 받아오는데, Service에서 설정한 매개변수처럼,

매개변수로 CartVO를 사용해서 두개를 받았다. 

 

 


삭제 (DELETE)

 

삭제 버튼을 눌렀을 때, 아이템이 삭제 되는 기능을 만들어보자.

cart.html

cartVO에 있는 cartCode라는 데이터를 가지고 가니까,

mapper로 가서 매개변수로 받아갈 데이터로 cartCode를 예상할 수 있다.

cart-mapper.xml

삭제를 실행하는 쿼리로 하나 더 만들어보았는데, itemCode와 memId를 비교해서 삭제하는 쿼리도 사용할 수 있다.

다만, 이럴땐 컨트롤러로 데이터 두개를 넘겼어야했고, 이후 Service에서 매개변수도 VO로 만들어줘야하는 불편함이 있으니, 그냥 cartCode 하나로만 진행하자.

CartService 인터페이스, 클래스

매개변수 및 리턴 타입 결정 방법(우선적으로 실행 시 쿼리를 작성)
매개변수 : 쿼리 실행 시 빈 값을 채울 용도
1. 쿼리에서 채워 줄 값이 없을 경우 : 매개변수 없음
2. 채워줄 값이 하나일 경우
 2-1) 채워줄 값이 숫자인 경우 : 매개변수 int형 하나
 2-2) 채워줄 값이 문자인 경우 : 매개변수 String형 하나
3. 채워줄 값이 여러개인 경우 : 매개변수는 VO 객체.
리턴타입 : 쿼리 실행 결과를 어떻게 받아올지에 대한 정의
INSERT, UPDATE, DELETE 쿼리 실행 결과는
리턴타입을 int 혹은 void 사용하면됨. int로 받을 땐 return 필요o  void는 필요x
SELECT 쿼리 결과의 리턴타입은 크게 두 가지로 나뉨.
조회결과 데이터가 무조건 한줄만 조회 : VO 객체.
조회 결과 데이터가 0줄이상 가변적일 경우 : List<VO> 객체.

 

CartController 컨트롤러

컨트롤러에서 cartCode를 받아와 삭제 쿼리 매개변수에 넣어주고 삭제 이후 컨트롤러로 다시 return 시켜주었다.

 

이렇게 삭제 버튼을 누르면 삭제가 완료된 것을 확인해볼 수 있다.

728x90
반응형

댓글