본문 바로가기

Struts2 + iBatis

MyBatis 에서 #{} 과 ${}의 차이

USER_NM = 홍길동이 담겨있다면,

 

$의 경우 ''(쿼테이션마크) 없이 글자 그대로 들어간다.

<select id="getName" parameterType="HashMap" resultType = "HashMap">
  SELECT  *
    FROM  USER
   WHERE  USER_NM IN ($USER_NM$)
</select>	

SELECT * 

  FROM USER

WHERE USER_NM IN (홍길동)

 

 

 

 

#의 경우 파라미터가 String 형태로 들어와 자동으로 ''(쿼테이션마크)가 붙는다.

쿼리주입을 예방할 수 있어 보안 측면에서 유리하다.

<select id="getName" parameterType="HashMap" resultType = "HashMap">
  SELECT  *
    FROM  USER
   WHERE  USER_NM IN (#USER_NM#)
</select>	

SELECT *

  FROM USER

WHERE USER_NM IN ('홍길동')