본문 바로가기
Spring/study

mybatis #{value}와 ${value} 차이

by avvin 2019. 6. 5.

mybatis #{value}와 ${value} 차이


쿼리의 생성방식의 차이라고 알고있습니다.

#을 사용한 쿼리는

UPDATE ? SET HIDDNE = ? WHERE ID = ?

이런식으로 쿼리가 preparedStatement를 사용해 생성되고

$를 사용한 쿼리는

UPDATE name SET HIDDNE = a WHERE ID = b

이런식으로 상수로 박혀서 생성이 됩니다.


$를 사용하는 경우 보안이슈에 주의해야 합니다.


UPDATE 쿼리의 기본 구조는

UPDATE 테이블 SET 컬럼 = 데이터 WHERE 조건

입니다


mybatis 에서 #{} 를 사용하면 자동으로 ''를 붙여주는데 테이블 명을 #{} 으로 감쌋다면


UPDATE '테이블' SET 컬럼 = 데이터 WHERE 조건

이런 형식이 되니 에러를 발생시는것 같습니다





출처 : https://okky.kr/article/354769