<select id="select list" parameterType="HashMap" resultType="HashMap">
select user_nm, user_id
from user
where user_id = #{user_id} and user_pwd = #{user_pwd}
</select>
$ (Statement)
SELECT ID FROM test WHERE num= ${num}
Oracle로 넘어온 쿼리 SELECT ID FROM test WHERE num = 77
실제 수행 쿼리 SELECT ID FROM test WHERE num = 77
num값이 달라지면 다른쿼리로 인식하기때문에 새로 파싱등의작업으로 속도 저하
'$'와 같은 경우 자주 바뀌지 않거나 사용자의 입력을 받는 경우가 아닐 때 사용하면 좋습니다.
예를 들어 컬럼명.
만약 사용자의 입력을 받는 경우 SQL Injection 보안 위험이 발생합니다
# (preparedStatement)
SELECT ID FROM test WHERE ID = #{ID}
Oracle로 넘어온 쿼리 SELECT ID FROM test WHERE ID = ?
실제 수행 쿼리 SELECT ID FROM test WHERE ID = 'admin'
오라클에서 변수를 바인드하여 id값이 달라져도 같은쿼리로 인식
'#'과 같은 경우는 사용자의 입력을 받는 경우 또는 데이터가 많은 경우 사용합니다.
'IT > DB' 카테고리의 다른 글
오라클 계정내 모든 테이블 삭제하기 (0) | 2024.07.15 |
---|---|
ORACLE 정리 (0) | 2023.03.27 |
mysql 정리 (0) | 2023.03.27 |
mysql 도커 실행 (0) | 2022.01.24 |
DB 튜닝을 알아보자 (0) | 2022.01.24 |
댓글