Backend/mybatis10 [mybatis]resultMap 하위 엘리먼트 -collection 엘리먼트 🔸collection : 1:N 관계의 테이블 조인에서 검색행의 컬럼값으로 List 객체를 생성하여 resultMap 엘리먼트의 type 속성값으로 설정된 클래스의 객체 필드에 저장하는 엘리먼트 => 하위 엘리먼트로 id 엘리먼트 또는 result 엘리먼트를 사용하여 검색행의 컬럼값을 List 객체 요소(Java 객체)의 필드에 저장되도록 설정 ▪️ property 속성 : collection 엘리먼트로 생성된 List 객체가 저장될 클래스의 필드명을 속성값으로 설정 ▪️ ofType 속성 : List 객체에 저장된 요소(Java 객체)의 자료형을 속성값으로 설정 => Java 자료형 대신 typeAlias 엘리먼트로 설정한 별칭(AliasName) 사용 가능 👩💻실습 예제 게시글 한 개 당 0개 이상.. 2024. 3. 10. [mybatis]resultMap 하위 엘리먼트 -association 엘리먼트 id/result 엘리먼트를 사용한다는건 검색행의 값을 바로 필드에 저장한다는 것이다! 그러니까 아래와 같이 DTO 파일을 확인해 봤을 때, 컬럼명마다 변수가 모두 선언되어 있다는 뜻이다. 그러나 만약 아래와 같이 필드에 객체를 저장해야만 하는 dto 클래스는 id/result 엘리먼트를 사용해 필드에 저장이 안된다. 이럴 때 사용할 수 있는 것이 association 엘리먼트! 🔸association : 1:1 관계의 테이블 조인에서 검색행의 컬럼값으로 객체를 생성하여 resultMap 엘리먼트의 type 속성값으로 설정된 클래스의 객체 필드에 저장하는 엘리먼트 => 하위 엘리먼트 : id 엘리먼트 또는 result 엘리먼트를 사용하여 검색행의 컬럼값을 association 엘리먼트로 생성된 객체 필드.. 2024. 3. 8. [mybatis]resultMap 하위 엘리먼트 - constructor 엘리먼트 resultMap에는 6가지 하위 엘리먼트가 있음. 이 엘리먼트들을 사용할 때는 순서가 정해져있다. 순서를 안지키면 에러남! 순서: constructor, id, result, association, collection, discriminator id와 result 엘리먼트는 여기 아래에 설명해놨음(해결법3 참고)⬇️ 2024.03.06 - [Java/mybatis] - [mybatis]수동 매핑 & resultMap 엘리먼트(컬럼명과 DTO파일 필드명 다를 때) [mybatis]수동 매핑 & resultMap 엘리먼트(컬럼명과 DTO파일 필드명 다를 때) resultType 속성을 사용하면 resultType 속성값으로 설정된 클래스로 객체를 생성하여 검색행의 컬럼값을 같은 이름의 객체 필드값으로 자동.. 2024. 3. 7. [mybatis]selectKey 엘리먼트(insert 엘리먼트의 하위 엘리먼트) 🤔selectKey : SELECT 명령의 실행결과로 값을 제공받아 insert 엘리먼트의 parameterType 속성값으로 설정된 객체의 필드값으로 저장하기 위한 엘리먼트 => insert 엘리먼트에 종속된 엘리먼트 => 자동 증가값 또는 난수값을 SELECT 명령으로 검색하여 객체 필드에 저장해 INSERT 명령에서 사용하기 위한 작성 ▪️ resultType 속성 : SELECT 명령으로 검색된 결과값을 제공받기 위한 Java 자료형을 속성값으로 설정 => J ava 자료형 대신 typeAlias 엘리먼트로 설정한 별칭(AliasName) 사용 가능 ▪️ keyProperty 속성 : insert 엘리먼트의 parameterType 속성값으로 설정된 클래스의 필드명을 속성값으로 설정 - 전달받 은.. 2024. 3. 7. [mybatis]resultMap 엘리먼트 - autoMapping 속성(컬럼명과 DTO파일 필드명 같을 때) 2024.03.06 - [Java/mybatis] - [mybatis]수동 매핑 & resultMap 엘리먼트(컬럼명과 DTO파일 필드명 다를 때) [mybatis]수동 매핑 & resultMap 엘리먼트(컬럼명과 DTO파일 필드명 다를 때) resultType 속성을 사용하면 resultType 속성값으로 설정된 클래스로 객체를 생성하여 검색행의 컬럼값을 같은 이름의 객체 필드값으로 자동 저장하여 제공 - 자동 매핑 문제점 : 검색행의 컬럼명과 re sukis.tistory.com 위 글에서 resultMap의 다른 속성들은 설명해놨음. 거기서 보던 예제로 계속 살펴보면, resultMap을 사용해 수동 매핑해줬었음⬇️ select user_id, user_name from myuser order by.. 2024. 3. 7. [mybatis]수동 매핑 & resultMap 엘리먼트(컬럼명과 DTO파일 필드명 다를 때) resultType 속성을 사용하면 resultType 속성값으로 설정된 클래스로 객체를 생성하여 검색행의 컬럼값을 같은 이름의 객체 필드값으로 자동 저장하여 제공 - 자동 매핑 문제점 : 검색행의 컬럼명과 resultType 속성값으로 설정된 클래스의 필드명이 모두 다른 경우 resultType 속성값으로 설정된 클래스로 객체를 생성하여 제공하지 않고 NULL 제공 => 웹프로그램 실행시 NullPointerException 발생 먼저 테이블과 필드명을 확인해보면⬇️ ⚫MYUSER 테이블 : 회원정보를 저정하기 위한 테이블 => SQL 명령은 대소문자를 구분하지 않기 때문에 식별자를 선언할 때 스네이크 표기법 사용 => 스네이크 표기법(SnakeCase) : 단어와 단어를 구분하기 위해 _ 기호를 사용.. 2024. 3. 6. 이전 1 2 다음 반응형