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 소스상에서 사용시 스네이크 기법을 많이 사용하기 때문에, 컬럼명과 프로퍼티명이 일치하지 않을 때가 있다.resultMap은 열 이름 불일치를 해결하는 방법 중 하나이다. 컬럼명이란? 쿼리구문에서 사용하는 DB 컬럼명 (ex. seq_no) 프로퍼티명이란? package com.java.someapp.User;public class UserVO { private int id; // 얘가 프로퍼티 private String username; // 얘가 프로퍼티 private String hashedPassword; // 얘가 프로퍼티 public int ge.. 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 다음 반응형