BackEnd/MyBatis3 [Spring Boot] [MyBatis] xml 에서 스네이크 표기법을 camelCase로 자동 변환 / resultMap 지정하지 않고 사용하기 DB와 java에서 사용하고자 하는 데이터 표기법이 다른경우. snake 표기법 -> userId // DB에는 컬럼명으로 스네이크형식을 사용. camelCase 표기법 -> user_id // 하지만 서버에서 객체의 멤버 변수의 이름은 카멜케이스 사용. 그렇기 때문에 MyBatis에서 resultType을 VO, DTO로 지정한다면 변수명이 달라서 데이터를 못받아오는 경우가 생긴다. alias를 쿼리문마다 주거나 (SELECT user_id AS userId FROM DUAL), resultMap을 쿼리에서 쓰는 컬럼 수 만큼 지정해주면 되긴 하지만 (원래는 xml에서 을 사용해서 일일이 매치해줬는데 솔직히 중노가다에 가깝고 귀찮았음) snake 형태를 dto에서 사용하는 camelCase로 자동 변환.. 2022. 6. 15. [MyBatis] resultMap Q. resultMap 언제 사용하는가? A. 컬럼명과 프로퍼티명이 다른 경우, 명시적으로 resultMap 을 선언해 매핑할 수 있다. 보통 Java에서는 **카멜케이스(camelCase), SQL에서는 **스네이크케이스(snake_case)**를 사용하는 경우가 많다.예를 들어, seqNo ↔ seq_no처럼 이름이 불일치하면 자동 매핑이 제대로 동작하지 않을 수 있다.그럴때 MyBatis의 resultMap은 열 이름 불일치를 해결하는 방법 중 하나이다. 요약컬럼명 ↔ 필드명이 다르거나, 조인된 결과를 객체로 매핑할 때 유용resultMap은 복잡한 매핑을 수동으로 정의할 때 사용단순한 경우엔 안 써도 되고, 자동 매핑(auto-mapping) 이 알아서 처리함 컬럼명이란? 쿼리구문에서 사용하는 .. 2020. 11. 16. [MyBatis] 반복되는 쿼리 묶기_<sql/><include/> 문법 ... .... SELECT * FROM TABLE1 WHERE name = #{value} 출처: https://marobiana.tistory.com/22 [Take Action] 내 Mapper에 사용한 경우 : 공통으로 반복되는 WHERE 구문에 사용 WHERE TITLE like '%' || #{word} || '%' OR MEMBER_ID like '%' || #{word} || '%' OR CONTENT like '%' || #{word} || '%' WHERE ${key} like '%' || #{word} || '%' SELECT COUNT(*) TOTAL FROM BOARD SELECT * from ( SELECT ROW_NUMBER() OVER(ORDER BY BOARD_NO) .. 2020. 8. 31. 이전 1 다음 반응형