Roel Notebook

[Java] statement와 PreparedStatement

by Roel Downey
728x90
반응형

Statement 와 PreparedStatement

SQL 을 실행할 수 있는 객체이다.

 

Statement 와 PreparedStatement 차이

가장 큰 차이점은 캐시(cache) 사용 여부이다. 

 

Statement

1. 단일로 사용될 때 빠른 속도를 지닌다.

2. 쿼리에 인자를 부여할 수 없다.

3. 매번 컴파일을 수행해야 한다.

 

Statement는 Dynamic SQL을 사용한다면 매번 조건절이 틀려지게 됨으로 Statement이 좋다. 즉, 캐싱의 장점을 잃어버린다.  

 

PreparedStatement

1. 쿼리에 인자를 부여할 수 있다.

2. 처음 프리컴파일 된 후, 이후에는 컴파일을 수행하지 않는다.

3. 여러번 수행될 때 빠른 속도를 지닌다.

 

preparedStatement는 처음 한 번만 세 단계를 거친 후 , 캐시에 담아 재사용을 한다.

특별한 경우가 아니면 preparedStatement가 이득이다. (컴파일 비용의 절감, SQL Injection 방지 등)

 

 

 

 

 

 

728x90
반응형

블로그의 정보

What doing?

Roel Downey

활동하기