statement 를 사용하면 매번 쿼리를 수행할 때마다 1) ~ 3) 단계를 거치게 되고
preparedStatement 는 처음 한 번만 세 단계를 거친 후 캐시에 담아 재사용을 한다는 것이다.
1) Statement
1. 단일로 사용될 때 빠른 속도를 지닌다.
2. 쿼리에 인자를 부여할 수 없다.
3. 매번 컴파일을 수행해야 한다.
2) PreparedStatement
1. 쿼리에 인자를 부여할 수 있다.
2. 한번 컴파일한 구문을 계속 사용한다.
3. 여러번 수행될 때 빠른 속도를 지닌다.
//내부적으로 prepareStatement 는 객체를 생성할때 쿼리문을 넣어서 생성해주는데 컴파일작업을 먼저 해놓는다.
//실행 -> 여러번 실행할때 쿼리문을 처음 객체만들때 기계어로 컴파일 -> 데이터만 setString 부분에서 처리하면 시간이 빠름
//실행할때마다 sql을 넣어줘서 매번 컴파일을 해줘야 한다. 반복적인 작업을 할때 preparedStatement 용이
//statement 는 해킹, 데이터를 뺴가는 일들을 당할 수 있다.
댓글
댓글 쓰기