[JDBC] Statement 와 PreparedStatement 차이점

JoJo·2023년 7월 25일
0

💡 Statement


✔️ Connection으로 연결한 객체에게, Query 작업을 실행하기 위한 객체

✔️ createStatement() 메소드를 통해서 객체 생성

✔️ execute*()를 실행할 때 쿼리문이 필요함

✔️ 쿼리문을 별도로 컴파일 하지 않아서 단순 실행일 경우 빠름

✔️ ex. 전체정보조회


💡 PreparedStatement 란?


✔️ Connection으로 연결한 객체에게, Query 작업을 실행하기 위한 객체

✔️ Statement를 상속받아서 만들어진 인터페이스

✔️ prepareStatement() 메소들를 통해서 객체 생성하는데 이때 쿼리문 필요

✔️ 쿼리문을 미리 컴파일하여 캐싱한 후 재사용하는 구조

✔️ 쿼리문을 컴파일 할때 위치홀더(?)를 이용하여 값이 들어가는 부분을 표시한 후 쿼리문 실행전에 값을 셋팅해주어야함.

✔️ 컴파일 하는 과정이 있어 느릴 수 있지만 쿼리문을 반복해서 실행할 때는 속도가 빠름

✔️ 전달값이 있는 쿼리문에 대해서 SqlInjection을 방어할 수 있는 보안기능이 추가됨

✔️ ex.아이디로 정보조회, 이름으로 정보조회

profile
꾸준히

0개의 댓글