Statement and PreparedStatement



이번글에서는 JDBC API Statement 와 PreparedStatement 의 차이점에 대해서 정리하려고한다.
Java Database Connectivity API 는 Java 를 사용하여 data access 를 할 수 있도록 제공해준다. RDBMS 뿐만 아니라 spreadsheets 와 flat files 도 가능하다.

JDBC API 는 2개의 패키지로 구성된다.
- java.sql
- javax.sql




Statement

String-based query 를 실행시킨다. parameter 대신 static SQL 을 처리하기 좋다. runtime 에 오직 한 번만 실행시킬 DDL 을 사용하기 적합하다. Binary Data Read / Write 작업에 사용이 불가능하다. Binary Protocol 이 사용되지 않는다. SQL Injection 에 취약하다.

PreparedStatement

parameterized query 를 기반으로 한다. runtime 에 parameter 를 다루고 여러번 수행되는 어떤 종류의 Query 도 처리하기 좋다. Dynamic query 를 처리하기 좋다. Binary Data Read / Write 작업이 가능하다. Binary Protocol 사용이 가능하다.

둘의 가장 큰 차이점은 precompiled 에 따른 성능과 보안 측면에서 SQL injection 방지이다.


참조




댓글

이 블로그의 인기 게시물

About Kafka Basic

About JVM Warm up

About ZGC

Spring Boot Actuator readiness, liveness probes on k8s

About G1 GC

sneak peek jitpack

About idempotent

C 언어 구조체의 포인터 멤버 변수

Synology NAS에 MariaDB 10에 Mysql workbench로 원격접속하기

About Websocket minimize data size and data transfer cost on cloud