문자열 대체(String Substitution)
#{} 문법은 MyBatis 로 하여금 PreparedStatement 프로퍼티를 만들어서 PreparedStatement 파라미터(예를 들면, ?)에 값을 셋팅하도록 할 것이다. 이 방법이 안전하기는 하지만, 좀더 빠른 방법이 선호되기도 한다. 가끔은 SQL 구문에 변하지 않는 값으로 삽입하길 원하기도 한다. 예를 들면, ORDER BY 와 같은 구문들이다.
ORDER BY ${columnName}
여기서 MyBatis 는 문자열을 변경하거나 이스케이프 처리하지 않는다.
중요 : 사용자로부터 받은 값을 이 방법으로 변경하지 않고 구문에 전달하는 건 안전하지 않다. 이건 잠재적으로 SQL 주입 공격에 노출된다. 그러므로 사용자 입력값에 대해서는 이 방법을 사용하면 안된다. 사용자 입력값에 대해서는 언제나 자체적으로 이스케이프 처리하고 체크해야 한다.
'데이터베이스' 카테고리의 다른 글
Tomcat DBCP를 사용해야 하는 이유 (0) | 2012.09.03 |
---|---|
Tomcat DBCP 설정법 (0) | 2012.09.03 |
Oracle UTF-8로 설정하기 (0) | 2012.08.02 |
SQL Developer 실행시 오류 (0) | 2012.08.01 |
두 날짜 사이 날짜 구하기 (0) | 2012.05.24 |