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 방지이다. 참조 https://docs.oracle.com/javase/8/docs/technotes/guides/jdbc/ https://www.baeldung.com/java-statement-preparedstatement https://www.geeksforgeeks.org/difference-between-statement-and-preparedstatement/ https://docs.oracle.com/javase/tutorial/jdbc/basics/prepared.html#:~:text=As%20a%20result%2C%20the%20...