개인공부

MyBatis $ #의 차이

lby132 2021. 6. 19. 10:33

#{} = 파라미터가 String 형태로 들어와 자동적으로 파라미터 형태가 된다.

예를들어 #{user_id}의 user_id의 값이 abc라면 쿼리문에는 user_id='abc'의 형태가 된다.

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

 

${} = 파라미터가 바로 출력된다.

해당 컬럼의 자료형에 맞추어 파라미터의 자료형이 변경된다.

쿼리 주입을 예방할 수 없어 보안측면에 불리하다. 그러므로 사용자의 입력을 전달할때는 사용하지 않는편이 낫다.

테이블이나 컬럼명을 파라미터로 전달하고 싶을때 사용한다. #{}은 자동으로 ''가 붙어서 이 경우에는 사용할 수 없다.