[MyBatis] xml 매핑 변수로 ${}를 함부로 쓰면 안 되는 이유
·
편안한코딩생활/오류 해결 일지
#{}와 ${}의 차이점나의 실수 사례 #{}를 ${}로 대체했을 때의 문제점1) #{}와 ${}의 차이점둘 다 mybatis에서 동적 sql을 작성하기 위하여, 변수를 매핑하는 방법이다.#{} : preparedStatement  .  변수가 ' ' 형식으로 넘어온다. ex) A.COL1 = #{COL1} => A.COL1 = 'COL1'${} : statement => 변수가 문자열 그대로 넘어온다.ex) A.COL1 = ${COL1} => A.COL1 = COL1 2)나의 실수 사례쿼리 where 조건에서 파라미터로 넘어온 값과 컬럼 값을 바로 비교하는 것이 아니라, 파라미터 값에 따라 다른 컬럼 값을 조회해야하는 쿼리를 짜야 하는 경우가 생겼다.AND A.COL1 = 'Y'AND A.COL2 = ..