resultMap 의 collection 집합 두 가지 실현 방식

3273 단어 자바
최근 에 만 든 프로젝트 는 MyBatis 로 한 쌍 의 다 중 맵 관 계 를 처리 하 는데 사용 되 었 습 니 다.다음 두 가지 방법 중 집합 적 인 내장 조회 방법 을 사 용 했 습 니 다.다음은 이 두 가지 방식 을 자세히 배 워 보 겠 습 니 다.
원 소 를 모 아서 한 쌍 이 많은 관 계 를 처리 하 다.매 핑 된 자바 실체 류 의 속성,속성의 자바 Type(일반적으로 ArrayList)을 지정 해 야 합 니 다.목록 에 있 는 대상 의 유형 of Type(자바 실체 클래스);대응 하 는 데이터베이스 테이블 의 열 이름;상황 에 따라 MyBatis 가 집합 을 어떻게 불 러 오 는 지 알려 줘 야 합 니 다.MyBatis 는 두 가지 방식 으로 불 러 올 수 있 습 니 다:
select:다른 맵 의 SQL 문 구 를 실행 하여 자바 실체 형식 을 되 돌려 줍 니 다.유연 하지만 여러 번 포 함 된 SQL 문 구 를 실행 합 니 다.
resultMap:join 조회 결과 집합 을 통 해 자바 실체 형식 으로 매 핑 하 는 데 포 함 된 결과 매 핑 을 사용 합 니 다.
두 가지 로 딩 방식 의 형식 은 다음 과 같 습 니 다.집합 적 인 내장 조회(select)SQL 구문 SELECT i.isocname extIsocName, i.isoc_logo extCommentUserNo, ic.comment_id, ic.comment_praise_num, ic.comment_dt, ic.comment_content FROM isoc i, isoc_comment ic WHERE i.isoc_id = ic.comment_isoc_id AND ic.comment_user_id = #{2} LIMIT #{0},#{1} select comment_photo_url from isoc_comment_photo where comment_id = #{comment_id}주의:column 속성의 값 은 해당 SQL 조회 문장의 열 이름과 같 아야 합 니 다.MyBatis 는 첫 번 째 SQL 문 구 를 조회 한 이 열의 값 을 끼 워 넣 은 SQL 맵 문 구 를 입력 하 는 데 사용 합 니 다.첫 번 째 SQL 문 구 를 조회 한 모든 열의 값 은 다른 SQL 문 구 를 실행 하 는 데 사 용 될 것 이기 때문에 포 함 된 SQL 문 구 는 여러 번 실 행 될 것 입 니 다.
집합 결과(resultMap)
  • SELECT  
    
  •     u.id as user_id,  
    
  •     u.name as user_name,  
    
  •     u.create_date,  
    
  •     r.id as role_id,  
    
  •     r.name as role_name  
    
  • FROM t_user u  
    
  • LEFT JOIN t_user_role ur ON(u.id=ur.user_id)  
    
  • LEFT JOIN t_role r ON(r.id=ur.role_id) where u.id=1  
    
  •   
    
  •   
    
  •   
    
  •    
    
  •        
    
  •       
    
  •    
    
  •    
    
  •   
    
  •   
    
  •   
    
  •   
    
  •    
    

  • 메모:column 속성의 값 은 해당 SQL 조회 문장의 열 이름과 같 아야 합 니 다.

    좋은 웹페이지 즐겨찾기