본문 바로가기

잡다한 개발잡담

JAVA <-> JDBC PreparedStatement, Statement, CallableStatment 차이점!

PreparedStatement

저는 개발할 때 가장 많이 썼습니다!

동적인 쿼리를 날릴 떄 사용합니다.

Statement

정적인 쿼리를 날릴 때 사용합니다.

 

근데 생각해보시면 JAVA에서 미리 변수를 통해 동적인 쿼리를 Statment로 보낼 수 있게 만들 수도 있습니다.

위에 두개는 무슨차이가 있을까요?

DBMS에 SQL의 명령어를 실행하게 되면 DBMS는 SQL구문을 해석하고 실행계획을 작성한 후에 SQL문이 실행됩니다.

그렇기 때문에 실행계획을 캐싱해서 사용한다면 재사용성을 높일 수 있습니다!

PreparedStatment는 이러한 재사용성을 보장하지만 Statement는 재사용 하지 못하기 때문에

PreparedStatment를 사용하는것이 좋습니다.

물론 한번의 쿼리만 사용하는 것이 명확하다면 Statment가 더 미묘하게 빠른것으로 알고있습니다.

 

CallableStatment

우리가 SQL문만 쓰는건 아니고 프로시저도 사용할 수 있을텐데 그런 프로시저를 활용하기 위해서 사용됩니다. CallableStatment역시 동적으로 쿼리를 날릴 수 있습니다.

'잡다한 개발잡담' 카테고리의 다른 글

JAVA - 숏서킷 연산  (0) 2020.03.14
Java class, Interface 차이  (2) 2020.03.07
프로시저의 장단점  (0) 2020.03.05
JAVA <-> MYSQL 연동을 위한 JDBC  (1) 2020.03.03
MVC 패턴  (0) 2020.03.03