잡다한 개발잡담
JAVA <-> JDBC PreparedStatement, Statement, CallableStatment 차이점!
Llife
2020. 3. 5. 23:48
PreparedStatement
저는 개발할 때 가장 많이 썼습니다!
동적인 쿼리를 날릴 떄 사용합니다.
Statement
정적인 쿼리를 날릴 때 사용합니다.
근데 생각해보시면 JAVA에서 미리 변수를 통해 동적인 쿼리를 Statment로 보낼 수 있게 만들 수도 있습니다.
위에 두개는 무슨차이가 있을까요?
DBMS에 SQL의 명령어를 실행하게 되면 DBMS는 SQL구문을 해석하고 실행계획을 작성한 후에 SQL문이 실행됩니다.
그렇기 때문에 실행계획을 캐싱해서 사용한다면 재사용성을 높일 수 있습니다!
PreparedStatment는 이러한 재사용성을 보장하지만 Statement는 재사용 하지 못하기 때문에
PreparedStatment를 사용하는것이 좋습니다.
물론 한번의 쿼리만 사용하는 것이 명확하다면 Statment가 더 미묘하게 빠른것으로 알고있습니다.
CallableStatment
우리가 SQL문만 쓰는건 아니고 프로시저도 사용할 수 있을텐데 그런 프로시저를 활용하기 위해서 사용됩니다. CallableStatment역시 동적으로 쿼리를 날릴 수 있습니다.