2020.11.12 고급자바 데이터베이스연결 statement , preparedstatement 차이

 statement 를 사용하면 매번 쿼리를 수행할 때마다 1) ~ 3) 단계를 거치게 되고

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

1) Statement 


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

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

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


2) PreparedStatement 


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

2. 한번 컴파일한 구문을 계속 사용한다. 

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



//내부적으로 prepareStatement 는 객체를 생성할때 쿼리문을 넣어서 생성해주는데 컴파일작업을 먼저 해놓는다. 

//실행 -> 여러번 실행할때 쿼리문을 처음 객체만들때 기계어로 컴파일 -> 데이터만 setString 부분에서 처리하면 시간이 빠름

//실행할때마다 sql을 넣어줘서 매번 컴파일을 해줘야 한다. 반복적인 작업을 할때 preparedStatement 용이 

//statement 는 해킹, 데이터를 뺴가는 일들을 당할 수 있다. 

댓글