[JDBC(Java Database Connectivity)]
: Java 기반 애플리케이션의 코드 레벨에서 사용하는 데이터를 데이터베이스에 저장 및 업데이트 하거나 반대로 데이터베이스에 저장된 데이터를 Java 코드 레벨에서 사용할 수 있도록 해주는 Java에서 제공하는 표준 사양
: JDBC API를 이용해 다양한 벤더(Oracle, MS SQL, MYSQL등) 데이터베이스와 연동 가능
- JDBC API의 사용법을 알 필요는 없으며, JDBC의 동작 흐름을 알면 Spring에서 지원하는 데이터 엑세스 기술을 사용하는데 도움이 됨
[JDBC 동작 흐름]
Java 애플리케이션 -> JDBC API -> JDBC 드라이버 -> 데이터베이스
* JDBC API를 사용하기 위해 JDBC 드라이버를 먼저 로딩한 후 데이터베이스와 연결
* JDBC 드라이버
: 데이터베이스와 통신을 담당하는 인터페이스
: 벤더에서는 해당 벤더에 맞는 드라이버를 구현해 제공하고, 드라이버의 구현체를 이용해 특정 벤더의 데이터베이스에 엑세스 가능함
[JDBC API 사용 흐름]
1. JDBC 드라이버 로딩
: DriverManager 클래스를 통해 사용하고자 하는 JDBC 드라이버 로딩
2. Connection 객체 생성
: JDBC 로딩이 진행되면 DriverManager를 통해 DB와 연결되는 세션인 Connection 객체 생성
: 작업 시 비용이 많이 드는 작업 중 하나 >> Connection Pool 이용
3. Statement 객체 생성
: SQL 쿼리문 실행을 위해 객체 생성 후 정적인 SQL 쿼리 문자열을 입력으로 가짐
4. Query 실행
: 3)을 이용해 SQL 쿼리를 실행
5. ResultSet 객체로부터 데이터 조회
: 실행된 SQL 쿼리에 대한 결과 데이터
6. ResultSet 객체 Close
7. Statement 객체 Close
8. Connection 객체 Close
: JDBC API를 통해 사용된 객체들을 사용 이후 사용 순서의 반대로 Close 진행
* Connection Pool
: Connection을 미리 만들어 보관하고 애플리케이션이 필요할 때 제공하는 역할을 하는 관리자
: 객체를 바로바로 생성하는 것이 아닌 미리 만들어둔 객체를 사용함으로써 성능 향상이 가능함
'공부 자료 > Spring' 카테고리의 다른 글
[Java MVC] DDD(Domain Driven Design) (0) | 2022.10.30 |
---|---|
[Spring MVC] About 'Spring Data JDBC' (0) | 2022.10.27 |
[Spring MVC] 체크 예외(Checked Exception), 언체크 예외(Unchecked Exception) (0) | 2022.10.26 |
[Spring MVC] Spring MVC 예외 처리 (@ExceptionHandler, @RestControllerAdvice) (0) | 2022.10.25 |
[Spring MVC] DTO 클래스와 Entity 클래스 역할 분리 필요 이유 (0) | 2022.10.24 |