Statement
: SQL 쿼리문을 DB에 전송하기 위한 인터페이스
: 문자열로 구성된 SQL 문을 DBMS로 전송 -> SQL문을 JDBC 드라이버가 읽을 수 있는 형식으로 전처리 수행
: SQL이 실행될 때마다 매번 전처리 작업을 수행해야 하기 때문에 반복적인 작업에 있어서 속도 저하 가능성 존재
: 쿼리문에 값이 미리 다 입력되어 있어야하므로 작성하는 SQL문이 복잡해짐
PreparedStatement
: Statement 인터페이스의 하위 인터페이스
: SQL을 실행할 때마다 매번 전처리하지 않고, 라이브러리 캐시에서 읽어와 처리하기 때문에 처리 속도 빠름
: SQL문 구조는 같지만 조건이 수시로 변할 때 조건의 변수 처리를 ‘?’(placeholder)로 지정 - 바인딩 변수
: 동일한 SQL문을 특정 값만 바꾸어서 여러 번 실행해야 할 때, 또는 인수가 많아서 SQL 문이 복잡할 때 편리
-> 속도 빠르고 복잡하지 않아 실무에서는 주로 PreparedStatement 사용
: 바인딩 변수의 순서는 ?의 순서에 의해 결정 (시작번호 1)
: 바인딩 변수에 값을 저장하기 위해 set타입명() 메서드 사용
: 바인딩 변수는 반드시 열이름이 아닌 열의 값의 자리에 위치 (values(?,?,?,?,?,?,?))
'Backend > Java' 카테고리의 다른 글
제네릭 (Generic) (0) | 2021.11.29 |
---|---|
DTO DAO 구현 예제 (0) | 2021.11.26 |
JDBC 연동 구현 예제 (0) | 2021.11.26 |
DAO DTO VO 개념 (0) | 2021.11.25 |
JDBC 개념 및 연동 과정 (0) | 2021.11.25 |