📁 JDBC란?
Java 기반 애플리케이션에서 사용하는 데이터를 DB에 저장하거나, DB의 데이터를 Java 코드로 사용할 수 있도록 해 주는 Java에서 제공하는 표준 사양이다.
JDBC API는 다양한 벤더(Oracle, MS SQL, MySQL 등)의 DB와 연동할 수 있다. 동작 흐름을 알면 Spring의 데이터 엑세스 기술 사용에 도움이 된다. (Spring Data JDBC, Spring Data JPA)
📁 동작 흐름
Java 애플리케이션 → JDBC API → JDBC 드라이버 → 데이터베이스
- JDBC 드라이버 로딩: DB와 통신을 담당하는 인터페이스로, 다양한 벤더에서 이를 제공하면 드라이버의 구현체를 이용하여 특정 벤더의 DB에 엑세스 할 수 있다. DriverManager 클래스를 통해 로딩된다. (인터페이스)
- Connection 객체 생성: DriverManager를 통해 DB와 연결되는 세션이다.
- Statement 객체 생성: 작성한 SQL 쿼리문을 실행하기 위한 객체이다. 정적 SQL를 입력으로 가진다.
- Query 실행
- ResultSet 객체로부터 데이터 조회: 실행된 쿼리문에 대한 결과 데이터 셋이다.
- ResulSet ➡️ Statement ➡️ Connection 객체 Close: 사용 순서 역순으로 Close 한다.
📁 Connetion Pool
Connection 객체의 생성 작업은 비용이 많이 든다. 애플리케이션 로딩 시점에 객체를 미리 생성해 두고, DB에 연결이 필요할 경우 이 객체를 사용하여 성능을 향상시킨다. 이 Connection을 제공해 주는 관리자이다. Spring Boot 2.0부터 HikariCP가 기본 DBCP로 채택되었다.
'Back-End > JPA' 카테고리의 다른 글
JPA 기반 데이터 액세스 계층 (0) | 2022.08.31 |
---|---|
[Spring Data JPA] 오프셋 기반 페이지네이션(Pagenation) | PagingAndSortingRepository (0) | 2022.08.30 |
[Spring Data JPA] 서비스, 리포지토리 구현 (0) | 2022.08.28 |
[Spring Data JPA] 도메인 엔티티 클래스 정의 (0) | 2022.08.28 |
Spring Data JDBC (0) | 2022.08.26 |
댓글