JDBC 란?
by mignon25JDBC란?
- Java Database Connectivity
- Java 기반 애플리케이션의 코드 레벨에서 사용하는 데이터를 데이터베이스에 저장 및 업데이트하거나,
- 데이터베이스에 저장된 데이터를 Java 코드 레벨에서 사용할 수 있도록 Java 에서 제공하는 표준 사양(명세)
- JDK1.1 버전부터 제공되는 표준 사양(명세, Specification)
- Java 개발자는 JDBC API를 사용해 다양한 벤더(Oracle, Ms SQL, MySQL 등)의 데이터베이스와 연동할 수 있다.
JDBC의 동작 흐름
Java 애플리케이션 ➡️ JDBC API ➡️ JDBC 드라이버 ➡️ 데이터베이스
- Java 애플리케이션에서,
- JDBC API를 이용해
- 적절한 드라이버를 로딩한 후,
- 데이터베이스와 상호작용(interaction)
JDBC Driver
- 데이터베이스와의 통신을 담당하는 인터페이스
- Oracle이나 MS SQL, MySQL 같은 다양한 벤더에서 해당 벤더에 맞는 JDBC 드라이버를 구현해서 제공한다.
- 개발자는 이 JDBC 드라이버의 구현체를 이용해 특정 벤더의 데이터베이스에 엑세스할 수 있다.
JDBC API 사용 흐름
1. JDBC 드라이버 로딩
- 사용하고자 하는 JDBC 드라이버 로딩
- DriverManager 라는 클래스를 통해서 로딩된다.
2. Connection 객체 생성
- JDBC 드라이버가 정상적으로 로딩되면 DriverManager를 통해 데이터베이스와 연결되는 세션(Session)인 Connection 객체를 생성한다.
3. Statement 객체 생성
- SQL 쿼리문을 실행하기 위한 객체
- 객체 생성 후에 정적인 SQL 쿼리 문자열을 입력으로 가진다.
4. Query 실행
- 생성된 Statement 객체를 이용해서 입력한 SQL 쿼리 실행
5. ResultSet 객체로부터 데이터 조회
- 실행된 SQL 쿼리문에 대한 결과 데이터 셋
6. ResultSet 객체 Close, Statement 객체 Close, Connection 객체 Close
- JDBC API를 통해 사용된 객체들은 사용 이후 사용한 순서의 역순으로 Close 해주어야 한다.
Connection Pool 이란?
Connection 을 미리 만들어서 보관하고 필요할 때 Connection 을 제공해주는 역할
Connection Pool을 사용하면 Java 애플리케이션은 기존 연결을 재사용할 수 있으므로 새로운 연결을 생성하는 오버헤드를 줄이고 전체적인 성능을 향상시킬 수 있습니다.
- 데이터베이스와의 연결을 위한 Connection 객체를 생성하는 작업은 비용이 많이 든다.
- 따라서 애플리케이션 로딩 시점에 Connection 객체를 미리 생성해두고, 데이터베이스에 연결이 필요할 경우 Connection 객체를 새로 생성하지 않고 미리 만들어 둔 Connection 객체를 사용함으로써 애플리케이션의 성능을 향상할 수 있다.
'Spring' 카테고리의 다른 글
| [Spring MVC] 서비스 계층 적용하기 (Prac Project - 3. 서비스 계층 <-> API 계층 연동) (0) | 2023.04.21 |
|---|---|
| [예외 처리] @RestControllerAdvice 사용한 예외 처리 (0) | 2023.04.20 |
| [예외 처리] 비즈니스 로직에 대한 예외 처리 (0) | 2023.04.20 |
| [예외 처리] @ExceptionHandler를 이용한 예외 처리 (0) | 2023.04.20 |
| DTO 유효성 검증 (Validation) - (1) (0) | 2023.04.18 |
블로그의 정보
Mignon'S Dev Log
mignon25