본문 바로가기

카테고리 없음

Statement와 PreparedStatement 차이점(간단히)

Statement PreparedStatement

Statement(정적 쿼리)


  • 파라미터가 들어간 완성된 쿼리를 처리한다.
  • 재사용이 불가능하여 성능 저하가 나타난다.
  • 완성된 쿼리를 처리하므로 SQL Injection1 가능성이 높다(위험도가 높다).
  • 주로 테이블명이나 컬럼명이 동적으로 바뀌어야 할 때 사용한다.

 

statement일 때 자료형이 문자열인 경우 따옴표('')를 반드시 붙여야 한다.

따옴표를 붙이지 않으면 자료형을 숫자로 인식하여 오류가 발생한다.

 

PreparedStatement(동적 쿼리)


  • SQL 쿼리에 바인딩 파라미터를 이용하여 쿼리를 처리한다.
  • 쿼리를 한번 컴파일 하면 재사용이 가능하다.
  • 비교적 SQL Injection 가능성이 낮다(위험도가 낮다).

 


1 SQL 삽입(영어: SQL Injection, SQL 인젝션, SQL 주입)은 응용 프로그램 보안 상의 허점을 의도적으로 이용해, 악의적인 SQL문을 실행되게 함으로써 데이터베이스를 비정상적으로 조작하는 코드 인젝션 공격 방법이다.