본문 바로가기

✨ Back-end173

[Spring] 쇼핑몰 - 34 장바구니 상품 중첩하기(MERGE INTO) https://bright-landscape.tistory.com/104 [Oracle / SQL] MERGE INTO 사용방법 (두 테이블, 한 테이블 DUAL) MELON_CHART HTML 삽입 미리보기할 수 없는 소스 MELON_CHART_NEW HTML 삽입 미리보기할 수 없는 소스 MERGE INTO HTML 삽입 미리보기할 수 없는 소스 SELECT * FROM MELON_CHART; 위와 같이 MELON_CHART에 있는 값을 다시한 bright-landscape.tistory.com 예전에 DB를 공부할 때 MERGE INTO에 대해서 공부한 내용을 기록한 것이 있다. cart-mapper.xml 기존에 있었던 장바구니에 상품 담기 쿼리인 INSERT 문에 MERGE INTO를 추가해줘야.. 2023. 4. 6.
[Spring] 쇼핑몰 - 33 사용자 계정 장바구니 목록 리스트 조회 이번엔 사용자 계정에 있는 장바구니 목록 리스트를 조회하는 것을 만들어보았다. CartVO cartVO에 상품 정보를 담기 위해서 itemVO가 필요해서 VO에 ItemVO 객체를 넣어주었다. 이렇게 하면 CartVO에서 ItemVO를 get하여 호출할 수 있다. cart-mapper.xml Association Association은 has one 관계를 설정할 수 있다. 즉, Cart- Item은 1 - N 관계이다. 아이템 입장에서 장바구니는 하나만 존재한다. 따라서, MyBatis 내 resultMap 내부에서 association을 활용해 데이터를 가져올 수 있다. AttachedFileName은 ITEM_IMG에서 끌어온다. 총 가격은 ITEM_PRICE * CART_CNT AS TOTAL_P.. 2023. 4. 5.
[Spring] 쇼핑몰 - 32 사용자 계정에서 목록 조회 Interceptor 사용자 계정에서 카테고리 목록조회 하는 방법을 알아보자. personal_layout.html 개인 레이아웃 페이지를 하나 생성해주었다. personal_side.html side쪽에 장바구니 목록, 구매내역, 개인 정보 변경을 위한 사이드도 추가했다. header에서 내 정보 수정하기를 누르면 컨트롤로 이동한다. CartController 컨트롤러 내 정보 확인하기 컨트롤러에서 장바구니 페이지 목록을 조회하는 페이지를 열어준다. cart_list.html 하지만 메뉴에 카테고리 목록이 조회가 되지 않는다. 이럴 때 ItemController에서 작성한 상품목록 쿼리를 계속 끌어다 써주면 되는데, 그러기에는 불필요한 중복이 반복되므로 intercepter를 써보도록 하자 ! CategoryIntercep.. 2023. 4. 5.
[Spring] 쇼핑몰 - 31 이전 페이지 HttpServletRequest 이전 페이지 경로 확인 이미지 목록 리스트 화면인 http://localhost:8081/item/itemList 에서 이미지 상세보기 컨트롤로 이동하였다. 이처럼 HttpServletRequest는 이전 정보 주소 데이터를 담고있다. ---------------------------------------------------------------------------------------------------------------------------------------------------------------- IndexController 컨트롤러 프로젝트를 완전히 껏다 다시키면, previousPage는 null이 뜬다. 만약 이전 페이지 정보가 있다면, path는 이전페이지로 갈 것이다. 관리.. 2023. 4. 4.
[Spring] 쇼핑몰 - 30 장바구니 DB에 장바구니 정보 테이블 쿼리를 생성해주었고, Spring에 VO로 CartVO 데이터들을 작성해주었다. item_detail.html html에서 js를 실행하기 위해 버튼에 onclick을 만들어 주었고, goCart() 자바스크립트가 실행되면 static 밑에 있는 item_detail에 있는 js 파일이 실행된다. 장바구니로 가기전에, 로그인이 되었는지부터 확인해봐야한다. 로그인 정보를 알수 있도록 하기위해 onclick버튼을 th:onclick으로 하면서 함수안에 데이터들을 함께 조회해준다. 로그인이 되지 않았을 때에는 session.loginInfo가 null로 떨어진다. 로그인 했을 때에는 session.loginInfo가 MemberVO 데이터 값으로 출력된다. 따라서 이런식으로 삼항연.. 2023. 4. 4.
[Spring] 쇼핑몰 - 29 상품 상세조회 row 첫번째로 전체를 감싼 후 , col-6 으로 절반을 나누겠다고 선언, row col안에 3개의 row로 나누었다. row row mb-3 은 마진 바텀으로 3을 주겠다는 것이다. item-mapper.xml 아이템 상세보기를 위해 mapper를 새로하나 만들어준다. ItemService 인터페이스, 클래스 매개변수 및 리턴 타입 결정 방법(우선적으로 실행 시 쿼리를 작성) 매개변수 : 쿼리 실행 시 빈 값을 채울 용도 1. 쿼리에서 채워 줄 값이 없을 경우 : 매개변수 없음 2. 채워줄 값이 하나일 경우 2-1) 채워줄 값이 숫자인 경우 : 매개변수 int형 하나 2-2) 채워줄 값이 문자인 경우 : 매개변수 String형 하나 3. 채워줄 값이 여러개인 경우 : 매개변수는 VO 객체. 리턴타입 .. 2023. 4. 4.
[Spring] 쇼핑몰 - 28 상품 목록 리스트 조회하기 item-mapper.xml 유저에게 보이는 상품 리스트 쿼리문을 짜준다. imgList는 itemVO안에 imgVO가 여러개 있다. imgVO안에는 attachedFileName이라는 변수가 있다. imgList에 attachedFileName이 들어간다. imgList에 있는 imgVO에 접근해서 이미지 뽑을때 조건이 IS_MAIN = 'Y' 때문에, 이 List안에는 imgVO가 하나밖에 안들어가있다. ItemService 인터페이스, 클래스 매개변수 및 리턴 타입 결정 방법(우선적으로 실행 시 쿼리를 작성) 매개변수 : 쿼리 실행 시 빈 값을 채울 용도 1. 쿼리에서 채워 줄 값이 없을 경우 : 매개변수 없음 2. 채워줄 값이 하나일 경우 2-1) 채워줄 값이 숫자인 경우 : 매개변수 int형 하.. 2023. 4. 4.
[Spring] 쇼핑몰 - 27 상품 정보 조회 검색창 활용하기 ** admin-mapper.xml admin-mapper의 아이템 정보 조회쿼리문으로 들어와 조건문에 AND를 추가한다. 필요한 빈값은 상품명(ITEM_NAME), 카테고리(CATE_CODE), 상품상태(ITEM_STATUS), 재고량(ITEM_STOCK) 이렇게 4개가 필요하다. SearchItemVO 그리고 SearchItemVO VO를 하나 생성해주었다. 쿼리문에 들어갈 데이터 값들이 들어갈 데이터다. ItemVO 만든 SearchItemVO 객체를 ItemVO에서 호출할 수 있도록 해주었다. AdminController 컨트롤러 컨트롤러에서 매개변수 SearchItemVO 객체를 하나 생성하는 대신, ItemVO를 생성해준다. 왜냐하면, ItemVO에 이미 serchItemVO가 존재하기 때문에 이렇.. 2023. 4. 3.
[Spring] 쇼핑몰 - 26 상품 정보 수정하기(UPDATE) admin-mapper.xml WHERE 절까지 필요한 NAME 속성 총 7개, AdminService 인터페이스, 클래스 매개변수 및 리턴 타입 결정 방법(우선적으로 실행 시 쿼리를 작성) 매개변수 : 쿼리 실행 시 빈 값을 채울 용도 1. 쿼리에서 채워 줄 값이 없을 경우 : 매개변수 없음 2. 채워줄 값이 하나일 경우 2-1) 채워줄 값이 숫자인 경우 : 매개변수 int형 하나 2-2) 채워줄 값이 문자인 경우 : 매개변수 String형 하나 3. 채워줄 값이 여러개인 경우 : 매개변수는 VO 객체. 리턴타입 : 쿼리 실행 결과를 어떻게 받아올지에 대한 정의 INSERT, UPDATE, DELETE 쿼리 실행 결과는 리턴타입을 int 혹은 void 사용하면됨. int로 받을 땐 return 필요o .. 2023. 4. 3.
[Spring] 쇼핑몰 - 25 상품 정보 이미지(IMG) 띄우기 header.html header.html에 있는 로그인 모달 태그를 들고와준다. 메인 이미지에 있는 차트분석 무작정 따라하기를 클릭하면 함수가 실행될 것이다. item_manage.js item_manage.js로 넘어와 이미지 버튼을 클릭하면 함수가 실행되도록 만들었다. javascript:void(0);" onclick="openImgModal(); target="_blank" 을 넣어주면, a태그에 있는 경로나 파일이 새탭으로 열린다. 이미지 팝업 모달 띄우는 방법은 부트스트랩에서 제공해서 이렇게 적으면 실행된다. const imgModal = new bootstrap.Modal('#imgModal'); item_manage.html item_manage.html 에 header에서 들고온 로그인.. 2023. 4. 3.
[Spring] 쇼핑몰 - 24 여러 쿼리 종합해 상품 정보 조회 <Map> 사용 Map을 사용해 메인 이미지에 나타낸 imgVO의 originFileName. 이전 까지 사용했던 상품 관리 상세조회이다. 쿼리를 두개 리턴시켜줘야하는데, 자료형 List에서는 그걸 할 수 가 없기 때문에, Map으로 바꿔서 리턴시켜줘야한다. 그래서 갈아엎고 다시 만들어보았다. AdminController 컨트롤러 컨트롤러에서 먼저 조회된 쿼리 두개 모두 cateList , item 이라는 변수로 만들어준다. cateList는 여러 줄로 조회된 데이터를 가지고 오므로 자료형이 List 로 채워지고, 상품 상세 정보 쿼리는 item으로 itemCode 의 문자열 데이터를 가져와 쿼리에서 ItemVO 정보를 조회한다. 자료형 Map은 Map(key, value) 로 채워질 수 있는데, key 값으로 Stri.. 2023. 3. 31.
[Spring] 쇼핑몰 - 23 등록된 상품 수정 Map쓰기전 쿼리를 하나 리턴시켜서 Ajax에서 html을 뽑아낸 화면. item_managa.htm a href 태그와 onclick 버튼을 함께쓰면 링크를 두개 타게 될텐데 하면 a태그를 안타면서 글씨체가 변화되는 것을 볼 수 있다. 클릭을 하였을 때, onclick 속성을 주면서 itemCode의 값을 js로 넘겨준다. IntercepterConfig 인터셉터 item_manage.js 따라서, 컨트롤러 경로 뒤에 반드시 Ajax를 함께 추가해줘야한다.그리고 받아온 itemCode를 컨트롤러로 넘겨준다. AdminController 컨트롤러 받아온 itemCode 값만 매개변수로 넣어주고, 아래 List와 return 은 잠시 무시하자. 바로 mapper로 가서 쿼리를 먼저 생성해주면 된다. HTM.. 2023. 3. 31.