728x90 320x100 mapper1 [자바/JAVA] mapper 쿼리문에 사용되는 ${}, #{} 의 차이점 (myBatis) Mybatis를 사용하는 프로젝트 에서 mapper쿼리문에 파라미터 값 설정할 때 $,{} 또는 #{}을 사용하게 되는데, 이 둘의 차이점에 대한 내용. ${} 값이 넣어진 채로 쿼리문이 수행. 파라미터의 값이 바뀔 때마다 새로운 쿼리로 인식 하기 때문에 항상 쿼리문 파싱을 진행해야 함. (즉, 성능상의 단점이 존재) ‘’(작은 따옴표)가 붙지 않기 때문에 테이블 이름이나 컬럼이름을 동적으로 결정될 때 사용할 수 있음. SQL injection에 취약함. #{} 파싱될 때 ?로 바뀌어짐. preparedstatement를 생성하기 때문에 ?에 파라미터가 바인딩 되어 수행됨. 이렇게 파싱된 쿼리문은 재활용(캐싱)되기 때문에 효율적임. 변수에 자동적으로 ‘’(작은따옴표가)가 붙기 때문에 ‘#{}’ 이런 형태.. 2021. 9. 27. 이전 1 다음 728x90 320x100