ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [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

    반응형

    댓글

Designed by Tistory.