MyBatis) 여러 개의 SELECT 동시 조회 / 변수 선언

이지우·2022년 11월 3일
0
  • 첫 SELECT문을 통해 조회한 컬럼(userid)의 값을 변수로 선언하여 다음 SELECT 문에서 사용하고자 했으나 찾지 못하고 spring service단에서 반복문 통해 해결함(row 수가 적어 가능했지만 많은 경우엔 어떻게 해결할지..)
* CommentServiceImpl

List<CommentUserDTO> CommentUserDTOList = mapper.getAdditionalList(movieCd, orderBy, currentCnt, additionalCnt);
		
for (CommentUserDTO commentUserDTO : CommentUserDTOList) {

	String userid = commentUserDTO.getCommentVO().getUserid();

	Map<String, Double> starRatingAvgCnt = starRatingMapper.getAvgCntByUserid(userid);
	if(Integer.parseInt(String.valueOf(starRatingAvgCnt.get("cnt"))) != 0) {

		log.info(starRatingAvgCnt.get("cnt"));
		log.info(starRatingAvgCnt.get("avg"));

		// 유저의 별점 평가 수 및 평균평점
        commentUserDTO.setStarRatingCnt(Integer.parseInt(String.valueOf(starRatingAvgCnt.get("cnt"))));
		commentUserDTO.setStarRatingAvg(Double.parseDouble(String.valueOf(starRatingAvgCnt.get("avg"))));

			}

		}
  • MyBatis selectKey 태그
    : Insert 이후/ 이전 PK 등 특정 컬럼들 Select 시 사용할 수 있는 태그

  • MyBatis Oracle PL/SQL ((DECLARE)-BEGIN-END)
    : 한번에 쿼리 2개 이상 실행해야 하는 경우 사용. DECLARE부에 변수 선언 가능

  • MyBatis bind 태그
    : JSTL의 c:set과 같이 외부에서 받은 파라미터 값을 가공해 특정 변수명으로 선언, 사용 가능

profile
IT개발 입문합니다.

0개의 댓글