BackEnd/MyBatis4 [MyBatis] list로 넘긴 데이터를 foreach 로 where in 구문에서 사용 IN 여러 값을 OR 관계로 묶어 나열하는 조건을 WHERE 절에 사용할 때 쓸 수 있는 키워드 값은 콤마( , )로 구분하여 괄호 내에 묶으며, 이 값 중에서 하나 이상과 일치하면 조건에 맞는 것으로 평가됨 in 절은 조건이 여러개인 경우 ('조건1','조건2','조건3) 과 같은 문법으로 사용 가능하다. WHERE report_id in ('1,'2','3') 이 문법을 java 소스에서 List 타입으로 데이터를 넘겨주어서 사용 하고 싶다면? 아래 코드 복사시 사용 가능 where 조건 in #{item} 주의점 ! 조건 in 은 꼭 foreach 바깥에 써주세요 myBatis의 forEach로 반복을 돌리면서 separatort(구분자)에 쉼표(,)를 배치해주는 과정이 아래와 같다. = 즉, in.. 2022. 9. 15. [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 다음