WEB Application

웹 프로그래밍 (xml resultMap 사용법, has many, xml 매핑)

Tech Signal 2020. 9. 22. 09:19

페이징 처리할때

PagingVO 만들어서 필요한 변수들 

 

 

String- 컴파일 시점에 타입 체크

List<T>와 같이 Generic - 실행(런타임) 시점에 타입 체크

  = List<?>여도 됨


관리자용 기능

- 회원 몇명인지

- 회원 정보 조회

 

total record 조회할 수 있는 메서드

 

이대로 xml 생성하는 이유: mapper proxy 사용하기 위하여 

mapper namespace와 

 

***

PagingVO 안에 getPagingHTML()이라는 메서드가 있음. 근데 pagingHTML이라는 변수는 해당 VO 안에 존재하지않음. 하지만 jsp에서 얠 불러 쓸 수 있다. 

이유: Jackson Databind가 마샬링할때 자바빈 규약을 거꾸로 적용해 그 프로퍼티를 만들어내기 때문

 

 

 

 

마샬링만 해서 보내도될때랑 forward해줘야할때 차이?

(응답이 이미 커밋된 후엔 forward할 수 없습니다)

 

 

네트워크 창으로 보는 동기/비동기 차이

 


<XML에서 여러 테이블이 조인된 쿼리를 사용하지만 VO는 하나일 때 >

한 회원이 구매한 여러 개의 상품을 보고 싶을때 

IBatis, MyBatis와 같은 dataMapper를 사용해 어떻게 하면 여러 테이블을 조인해 가져갈 것인가?

 

원칙적으로 cart,member,prod 해서 테이블 3개가 필요함 but MemberVO는 하나뿐. 

=> 최소한으로 필요한 VO 들만 

식별자를 알려줘서 중복을 해결할 수 있게 해주기

 

 

해당 수동매핑된 resultMap에서 원래는 VO의 변수를 하나하나 매핑해줘야한다. 하지만 MyBatis에서는 autoMapping기능을 이용해 한번에 할 수 있삼★

 

1:1 관계 association

1:N 관계 collection

정리!!!

테이블 조인 결과 매핑 방법 

1. 각 테이블로부터 데이터를 매핑할 각각의 VO 정의 
2. 테이블관계를 모델링해 vo안에 변수로 만들어주기
3. xml에서 resultType 대신 resultMap 사용 
  - 1: N / collection 으로 매핑 (주의! 중복을 제거할 수 있는 식별컬럼(<id>) 설정)  
  - 1: 1 / association 
4. 수동으로 매핑 설정

 (위 이미지 참조)