-
[MyBatis] #{} 와 ${} 차이점MyBatis 2021. 4. 4. 11:56반응형
MyBatis에서 쿼리문에 파라미터 값을 설정하기 위해 #{}과 ${}를 사용하는데, 다음과 같이 차이가 있습니다.
#{} 이란?
1.#{} 사용 시 PreparedStatement(동적) 생성합니다.
2.PreparedStatement 매개 변수 값에 문자열을 직접 삽입하지 않고, 물음표(?)에 파라미터가 바인딩되어 수행됩니다.
3.문자열에 따옴표('')가 붙습니다.
#{}을 사용할 경우 실행 방식1.MyBatis Mapper에서 작성된 쿼리 SELECT * FROM USER WHERE ID = #{ID} 2.데이터베이스에 전달하는 쿼리 SELECT * FROM USER WHERE ID = ? 3.실제 수행하는 쿼리 SELECT * FROM USER WHERE ID = 'ADMIN'
${} 이란?
1.${} 사용 시 Statement(정적) 생성합니다.
2.Statement 매개 변수 값에 문자열을 직접 삽입합니다.
3.문자열에 따옴표('')가 붙지 않습니다.
${}을 사용할 경우 실행 방식1.MyBatis Mapper에서 작성된 쿼리 SELECT * FROM USER WHERE ID = #{ID} 2.데이터베이스에 전달하는 쿼리 SELECT * FROM USER WHERE ID = ADMIN 3.실제 수행하는 쿼리 SELECT * FROM USER WHERE ID = ADMIN
MyBatis 가이드 - mybatis.org/mybatis-3/ko/index.html
반응형'MyBatis' 카테고리의 다른 글
[MyBatis] CDATA(<![CDATA[...]]>), HTML 특수문자 코드 (0) 2021.04.04 [MyBatis] if문 사용 시 ''(작은따옴표) 오류 (0) 2021.04.04