본문 바로가기
레거시

2022.02.25의 기록

by GroovyArea 2022. 2. 25.

=>  공부 관련

1) 모던 자바 스트림(Stream) & 입출력 스트림(IO Stream)

2) 금일 배운 내용 복습

3) 기술 질문 용지에 모두 정리

 

=> 파이널 프로젝트 관련

1) UI 회의


 문제 정리


 공부 내용

DB

  • DTO 클래스의 필드값과 DB 컬럼명의 이름이 동일하지 않은 경우 제약조건을 걸어두면 좋다.
    • 포함 관계가 성립되기 위해서는 반드시 필드에 인스턴스 저장
      1. 1:1 관계의 조인 검색 결과를 저장하기 위한 클래스
      ⇒ 기존에 작성된 클래스를 재사용 **POJO(Plan Old Java Object)**하여 새로운 클래스를 쉽게 작성하여 생산성 증가 및 유지보수 효율성 증가
      1. 1:N 관계의 조인 검색 결과를 저장하기 위한 클래스
      ⇒ 목록을 저장하기 위해 List 자료형 이용
    • 테이블과 테이블의 검색결과를 저장하기 위한 클래스
  • DTO

1:N 관계의 조인은 Outer Join을 사용하여 검색


mybatis-config.xml

  • DTO 클래스에 필드가 포함 관계로 작성된 경우 포함 관계의 필드에 인스턴스를 매핑하여 저장되도록 반드시 resultMap 엘리먼트를 사용하여 매핑 정보 제공 필요
    • 1:1 관계의 테이블 조인 검색행의 컬럼값을 포함 관계의 인스턴스로 생성하여 DTO 클래스의 필드에 매핑하여 저장하기 위한 엘리먼트
      • property 속성 : DTO 클래스의 포함 관계로 설정된필드명을 속성값으로 설정
      • javaType 속성 : DTO 클래스에 포함 관계로 설정된 Java 자료형을 속성값으로 설정
    ⇒ assciation 엘리먼트의 하위 엘리먼트 (id 엘리먼트와 result 엘리먼트)로 설정하여 검색행의 컬럼값을 포함 인스턴스 필드에 매핑되어 저장되도록 설정
  • association

Mapper.xml

  • 엘리먼트에 등록된 SQL 명령에서는 관계연산자(> 또는 <)를 사용하면 엘리먼트 기호로 사용 불가
  • ⇒ SQL 명령에 XML 문서에서 사용할 수 없는 문자가 존재할 경우 엔티티 레퍼런스로 변경하거나 CDATA 세션에 SQL 명령을 등록하여 사용resultMap 속성
    • resultMap 엘리먼트를 구분하기 위한 식별자를 속성값으로 설정
    • ⇒ 기존 매핑정보를 제공받아 검색행의 컬럼값을 포함 인스턴스 필드에 매팽 처리 - resultMap 엘리먼트 재사용
    column 속성
    • select 속성값으로 등록된 엘리먼트의 SELECT 명령에서 사용될 컬럼값을 전달하기 위한 컬럼값이 저장된 컬럼명을 속성값으로 설정
    select 속성
    • select 명령이 등록된 select 엘리먼트의 식별자를 속성값으로 설정
    • ⇒ select 엘리먼트로 등록된 SELECT 명령을 실행하여 제공된 결과값(DTO 인스턴스)를 포함 인스턴스 필드에 매핑하여 저장
    • ⇒ column 속성값으로 제공된 컬럼값을 SELECT 명령에 전달하여 조건에 맞는 행만 검색
    collection 엘리먼트
    • 내부 반복을 가짐.
    • 1:N 관계의 테이블 조인에서 다수의 검색결과를 List 인스턴스에 생성해 필드에 저장하기 위한 엘리먼트
      • property 속성 : List 인스턴스를 저장하기 위한 필드명을 속성값으로 설정
      • ofType 속성 : List 인스턴스의 요소로 저장될 Java 자료형을 속성값으로 설정
    association 엘리먼트에서 사용하기 위한 SELECT 명령 등록⇒ WHERE 구문으로 조인을 위한 컬럼값을 전달받아 조인조건으로 사용
  • ⇒ DAO 클래스에서 사용할 SQL 명령이 아니므로 Interface 맵퍼에 추상메서드로 미선언
  • resultMap 엘리먼트

 파이널 프로젝트

> 7시 UI 회의 예정

반응형

'레거시' 카테고리의 다른 글

2022.02.28의 기록  (0) 2022.02.28
2022.02.27의 기록  (0) 2022.02.27
2022.02.24 의 기록  (0) 2022.02.24
2022.02.23의 기록  (0) 2022.02.23
2022.02.22의 기록  (0) 2022.02.22