페이징 처리할때
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. 수동으로 매핑 설정 (위 이미지 참조) |
'WEB Application' 카테고리의 다른 글
웹 프로그래밍 (front controller 패턴에 resolvers 더하기) (1) | 2020.09.23 |
---|---|
웹 프로그래밍 (xml 주의할 점, front controller 패턴 ) (3) | 2020.09.22 |
20/09/18 웹 프로그래밍 (slf4j, 페이징 처리, DataTables) (2) | 2020.09.18 |
20/09/17 웹 프로그래밍 기초 (프레임워크, iBatis, MyBatis ) (1) | 2020.09.17 |
20/09/16 웹 프로그래밍 기초 (Annotation, constraints, jquery event propagation) (0) | 2020.09.16 |