9. 홈 페이지에서 영화 목록 조회

movie와 movie_category 테이블에 데이터들을 여러개 추가했다. 위는 movie 테이블과 comment 테이블을 join하여 각 영화와 각 영화의 평점들을 함께 나타내게 하였다. limit 5로 5개의 영화만 순서대로 나타난다.

위는 전체 영화별 평점 순위를 조회하는 것이고, 밑은 각 장르별로 평점 순으로 영화를 조회한다.

전체별, 장르별로 영화를 조회하는 메소드 생성


Join을 한 쿼리문이기 때문에 resultMap을 써야한다. MovieCommentDTO를 만들어 쿼리문에 필요한 VO들을 집어 넣고 association에 각 VO를 입력한 뒤, result에 vo 안에 있는 변수들을 집어 넣으면 된다.

장르별 영화 조회 역시 마찬가지

컨트롤러에 가서 전체 평점 순위로 영화 나타내는 메소드 호출.

home 페이지의 자바스크립트로 가서 영화를 나타내는 부분의 태그를 가져온다.

전체 영화를 조회

서버에서 받은 모든 영화 데이터를 화면에 생성한다. 평점 같은 경우는 어떤 영화는 null로 되어있어 오류가 떠서 화면에 나타나지 않은 경우가 있는데, 이럴 경우 try catch문을 이용하여 null이 아닌 경우 정상적으로 평점이 등록되고, null이어서 오류가 발생할 경우 그냥 평점을 0점으로 처리하게끔 한다. 영화 상세페이지에 나타내는 평점 역시 해당 컨트롤러에 가서 이런식으로 수정하였다.

만약 try catch문이 번거롭다면 그냥 쿼리에 IFNULL구문을 쓰면 된다. NULL값일 경우 0을 반환한다.

장르별 평점 순서대로 영화 나타내는 방법. 각 카테고리를 가져와서 만약 카테고리의 이름이 thriller일 경우 '스릴러'라는 키워드로 쿼리문에 매핑하여 그 장르에 해당하는 영화를 조회하는 방식으로 구현하였다.

불러올 장르 목록들과 각 장르별 영화를 불러올 장소들을 배열로 정리하였다. 그리고 for문을 써서 차례대로 각 장르별 데이터들을 불러오게 하였고, 화면에 나타내는 함수의 파라미터 안에 각 장르의 데이터들과 그 장르의 영화를 불러올 장소태그들을 넣었다.

그 파라미터로 불러온 각 장르의 데이터들과 장소태그를 불러와서, 화면에 생성하였다.


확인 결과, 정상적으로 영화들을 불러왔다.