본문 바로가기

JAVA/JAVA-Project

테이블 3개 조인하기. (관리자-좌석관리에서 좌석 배치도에 정보 입력 하기 위함) 21. 05. 29.

개요 ✨

관리자 페이지의 '좌석 관리' 페이지에서 좌석 배치도에 '좌석 번호, 이용 중인 '회원 이름', '만료일'을 나타내고 싶다. 처음에 잘못 생각해서 단순히 inner join으로 TBL_MEMBER, TBL_REGINFO, TBL_SEAT을 join 했는데, 그럼 좌석 배치도를 띄울 수가 없었다!
빈 좌석들도 나와야 하기 때문에 OUTER JOIN을 이용해야 한다.

 


🍏 SQL

        SELECT S.SNO, M.USERNAME, R.ENDDATE, S.STATUS FROM TBL_SEAT S
        LEFT OUTER JOIN TBL_REGINFO R
        ON S.SNO = R.SEATNO
        LEFT OUTER JOIN TBL_MEMBER M
        ON M.USERNO = S.USERNO
        ORDER BY SNO;

 

 

🔶 이런 식으로 모든 좌석의 번호는 나와야 이를 기반으로 배치도를 만들 수 있다.

 


🍎 결과

 

 

🔶 관리자 페이지는 부트스트랩 테마를 따로 써서, 그 테마에 맞게 이용자가 보는 배치도와는 다르게 했다.
🔶 내일은 회원 중 미등록 회원 목록을 출력하여 해당 회원을 누르면 관리자가 좌석 등록을 진행할 수 있게끔 할 예정이다.

 

+) 위 sql Mapper는 List<Map<String, Object>>을 이용했는데, jsp에서 값을 불러올 때 대문자로 써야 불러올 수 있다!!

 

로그를 찍어보니 이런 식으로 대문자로 키가 되어 있었다. 

평소처럼 ${planInfo.userName} 이런 식으로 하니깐 NumberFormatException이 떠서 조원의 도움을 받아 자세히 로그를 보니 service테스트에서 대문자로 찍히는 로그를 발견 ..... 조원 피드백이 없었다면 삽질로 시간을 많이 날릴 뻔 했다.^^;