본문 바로가기
IT/Java

Statement / preparedStatement 차이

by 성준하이 2023. 8. 28.
반응형

자바 JDBC를 사용할 경우 

요즘엔 preparedStatement 를 많이 사용하곤 하지만 예전에는 Statement 로도 종종 사용을 해왔다.

 

비슷한 기능을 하는 두 메서드에 대해서 차이에 대해 잠깐 적어보려고 한다.

 

결론 먼저 말하면 PreparedStatement 를 더 많이 사용하고 사용하기를 권장한다.

이유는 크게 2가지이다.

 

성능면에서 재사용이 가능하여 도움이 되고 ,

sql 인젝션이 방지 되어 보안상에도 도움이 된다.

sql 인젝션 관련해서는 아래 참고 포스팅 참고 바란다.

 

그리고 나중에 알게 된 사실인데 속도면에서도 도움이 된다고 한다.

일반적인 RDBMS 사용시 실행할 쿼리를 실행하면 다음 단계를 거친다.

  1. SQL 쿼리 구문 분석(syntax, semantic)
  2. SQL 쿼리 컴파일 (compile)
  3. 데이터 수집 경로 계획 및 최적화 (optimizer)
  4. 최적화 된 쿼리를 실행하고 결과 데이터를 반환 (fetch)

Statement를 사용할 경우 4 단계를 거치지만

PreparedStatement준비된 문장을 만들 때 처음 3 단계가 실행된다.

따라서 쿼리를 실행하는 데 소요되는 시간과 속도가 더 빠르다고 한다.


참고 포스팅

https://thenicesj.tistory.com/69

 

log4j 란?

얼마전에 세계적으로 취약점으로 알려진 log4j 라고 들어보신 분들이 많을것이고 it에서 종사하시는 분들이라면 기업에서도 실제로 대응한 경험이 있을 것이다. 간단하게 설명하며 어떤 놈이길

thenicesj.tistory.com

 

반응형

'IT > Java' 카테고리의 다른 글

spring -> springboot 로 프로젝트 변경  (47) 2023.08.30
[Java] ASCII 문자 숫자 변환 코드  (50) 2023.08.29
Lazy Bean 에 대해(lazy init / lazy loading)  (47) 2023.08.26
SpringJDBC에서 DataSource, RowMapper란?  (44) 2023.08.24
[Java] Scope란?  (52) 2023.08.23

댓글