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