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

[Spring] 쇼핑몰 -2 카테고리 조회 (SELECT)

by 환풍 2023. 3. 26.
728x90

 


상품 카테고리 테이블을 만들고 조회 시켜보자.

item-mapper.xml

 

admin-mapper.xml

 

AdminService 인터페이스

매개변수 및 리턴 타입 결정 방법(우선적으로 실행 시 쿼리를 작성)
매개변수 : 쿼리 실행 시 빈 값을 채울 용도
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> 객체.

AdminServiceImpl 클래스

@Service를 추가해서 adminService 인터페이스에게 상속을 받았다는 것을 표현하기 위해 사용해주었고,

@Autowired를 이용하여 자동으로 객체를 만들어주고 사용할 수 있다.

 

AdminController 컨트롤러

@Resource - 만들어진 객체 명을 기준으로 의존성 주입을 시킨다. Impl 클래스에서 @Service로 어노테이션 주었던 값을 명확히 해주기 위해 name을 사용한다.

매개변수로 Model이라는 객체를 생성해 카테고리 목록 조회 쿼리문을 추가시켜주었다. 이때 html에서 사용될 이름으로는 cateList를 주면서 html로 데이터를 넘기게 된다.

cate_manage.html

<tbody> 태그가 쿼리 조회 결과가 나올 html 부분이다. th:if로 조회된 데이터가 없으면 카테고리가 존재하지 않다고했다.

th:unless를 이용해 0이 아니라면 이라는 조건을 주어 th:each문을 적용시켰다.

category 라는 이름으로 뽑아내줄 것이며, state는 컬럼의 개수를 나타내기 위해, ${cateList}는 위 컨트롤러에서 받아온 데이터를 의미한다. 

최종화면

지금은 카테고리 등록을 하지 않았다. 즉, insert는 하지 않고, select만 해줬기 때문에 

${#lists.size(cateList) == 0 가 if문을 참조하여 위와 같은 결과가 나왔다.

다음 포스팅에서는 카테고리 등록에 대해서 알아보자.

반응형

댓글