[SQL] Statement와 PreparedStatement
Updated:
개요
- SQL 처리 과정 차이에 따라 구분
Statement
- 매번 모든 과정을 수행
- SQL문 예제
INSERT INTO test(id, name) VALUES(1, 'a');
- SQL injection과 같은 보안 문제 발생 가능
PreparedStatement
- parse를 한번만 수행 후 두번째부터는 bind 부터 수행
- SQL문 예제
INSERT INTO test(id, name) VALUES(?, ?);
- bind 시에는 값을 쿼리로 판단하지 않으므로 SQL injection 방지
- 동일한 SQL문을 반복해야하는 경우 parse를 한번만 수행하므로 성능 및 재사용성 증가