[java][jdbc][oracle] Statement PrepareStatement 차이
/*
- Statement
- createStatement() 메소드를 통해서 객체 생성
- execute*()를 실행할 때 쿼리문이 필요함
- 쿼리문을 별도로 컴파일 하지 않아서 단순 실행일 경우 빠름
- PreparedStatement
- Statement를 상속받아서 만들어진 인터페이스
- prepareStatement() 메소들를 통해서 객체 생성하는데 이때 쿼리문 필요
- 쿼리문을 미리 컴파일하여 캐싱한 후 재사용하는 구조
- 쿼리문을 컴파일 할때 위치홀더(?)를 이용하여 값이 들어가는 부분을 표시한 후 쿼리문 실행전에
- 값을 셋팅해주어야함.
- 컴파일 하는 과정이 있어 느릴 수 있지만 쿼리문을 반복해서 실행할 때는 속도가 빠름
- 전달값이 있는 쿼리문에 대해서 SqlInjection을 방어할 수 있는 보안기능이 추가됨
- */