728x90
1. PreparedStatement는 데이터베이스에 사용되는 sql문장을 저장하며,
ex1) SELECT NVL(NAME,'0') as NAME , NVL(STATUS,0) as STATUS FROM TABLE_NAME WHERE NAME = ?
위의 예제와 같이 쿼리를 저장하고잇어 상태가 변하지 않는곳에 사용하면 효율이 좋다
2. Statement는 데이터베이스에 저장되어있는 sql 문장을 사용하지 않고,
ex2) UPDATE TABLE_NAME SET ( A || B || C ) WHERE NAME = ?
위의 예제와 같이 쿼리 내부에 상태가 항상 변할 때에 사용한다.
왜냐하면 db에서 쿼리를 실행하면 pstmt같은 경우 쿼리를 수행시 그 수행한 쿼리를 저장하게되는데
pstmt로 ex2번과 같이 각 조건에 따라서 A또는 B또는 C가 나오도록 수행이 된다면 저장하는 메모리를 차지하고
이로인해 db가 다운될 수도 있다.
3. 그래서 상태에 따라 쿼리에 로직이 변하는 곳에서는 Statement를 사용하고,
로직이 변하지 않는 곳에서는 PreparedStatement를 사용한다.
4. 성능적으로 따졌을 때 Statement보다 PreparedStatement가 더 효율적이다
이유는 저장된 쿼리를 불러오기 때문이며
단, 상태에 따라 쿼리가 변할 때 PreparedStatement를 사용하게되면 과부화가 걸려 다운 될 수 있음을 주의해야한다.
300x250
'Java & Spring' 카테고리의 다른 글
[Java Test] 1. JUnit5 (2) 테스트 필터링, 테스트 반복 (1) | 2023.05.19 |
---|---|
[Java Test] 1. JUnit5 (1) (0) | 2023.05.18 |
[DDD] 도메인 주도 개발 - (3) 리포지토리 & 모델 구현 (0) | 2023.02.21 |
[DDD] 도메인 주도 개발 - (2) 애그리거트 (0) | 2023.02.21 |
[DDD] 도메인 주도 개발 - (1) 좋은 아키텍처와 도메인 주도 설계 (0) | 2023.01.11 |
[Spring Legacy] 설명 (0) | 2021.01.27 |
[Spring Regacy] 스프링 레가시 프로젝트 만들기 (0) | 2021.01.27 |
01. Setup Java JDK and Variables (자바 JDK 설치 및 환경설정) (0) | 2020.06.09 |