아이베티스2 Mybatis 에서 #{} 과 ${}의 차이 회사에 취직하고나서, 쿼리문을 작성하는데 이상한 점을 발견했다. 바로 Mybatis 를 이용해 XML에 쿼리문을 작성하는데, 파라메터 작성법이 그동안 내가 해왔던 것과는 다른 것이었다. 아래는 그동안 내가 써왔던 방식이다. SELECT USER_NM , USER_ID FROM USER WHERE USER_ID = ${USER_ID} AND USER_PWD = ${USER_PWD} 그리고 이건 회사에서 사용하는 방식이다. SELECT USER_NM , USER_ID FROM USER WHERE USER_ID = #{USER_ID} AND USER_PWD = #{USER_PWD} 무슨 차이가 있는지 보이는가? 바로 ${} 가 #{} 로 바뀌었다! 왜? 왜 $을 안쓰고 #을 쓸까? 너무 궁금해서 찾아보았다. .. 2021. 8. 18. MyBatis - 동적 쿼리 사용하기 1. 기본적인 동적 쿼리 SELECT * FROM KH.EMPLOYEE WHERE ${searchType} = #{keyword} map 형식으로 검색 타입과 키워드를 받아와서 처리했다. WHERE 절에서 검색 타입은 ${ } 로 전달하며 키워드는 #{ } 로 전달한다. ${ } 는 파라미터 값이 그대로 들어가며 #{ } 는 파라미터 값이 ' ' 으로 감싸진다. 달라지는 검색 조건에 대응할 수 있다. 2. if문을 이용한 동적 쿼리 SELECT * FROM EMPLOYEE WHERE 1=1 AND NAME LIKE '%' || #{keyword} || '%' AND GENDER = #{gender} if문을 이용한 동적 쿼리 이다. if문을 이용하는 방법은 EL 처럼 test 속성에 조건을 넣어주면 된다.. 2021. 5. 10. 이전 1 다음 728x90 반응형