JDBC란?
JDBC (Java Database Connectivity)는 자바 기반 Application코드 레벨에서 사용되는 데이터를
DB에 저장 / 업데이트하거나, DB의 데이터를 자바 코드레 벨에서 사용하게 해주는
Java에서 제공하는 표준 API이다.
JDBC의 구체적인 API 사용법은 알 필요가 딱히 없지만 동작 흐름을 알고 있으면 Spring에서 지원하는
데이터 액세스 기술을 사용하는 데 있어 유용하다.
후에 학습하게 될 Spring Data JDBC나 Spring Data JPA 기술들은 내부적으로 JDBC를 이용한다.
JDBC 전체 동작 흐름

JDBC API 사용을 위해서는 JDBC 드라이버라는 것을 먼저 로딩한 후에 DB와 연결하게 된다.
DB와의 통신을 담당하는 인터페이스이다.
Oracle, MySQL, MS SQL 같은 다양한 벤더에서 사용하기 위해 각각의 벤더에 맞는 JDBC 드라이버를
구현하여 특정 벤더의 DB에 접근할 수 있게 된다.
JDBC API의 동작 흐름

- JDBC 드라이버 로딩
> 사용할 JDBC 드라이버를 로딩하고, DriverManager라는 클래스를 통해 로딩된다. - Connection 객체 생성
> JDBC 드라이버가 정상적으로 로딩된 후, DriverManager를 통해
DB와 연결되는 세션인 Connection 객체 생성 - Statement 객체 생성
> 작성된 SQL 쿼리문을 실행하기 위한 객체
> 객체 생성 후, 정적인 SQL 쿼리 문자열을 입력으로 갖는다. - Query 실행
- ResultSet 객체로부터 데이터 조회
> 실행된 SQL 쿼리문에 대한 결과 데이터 셋 - 생성된 객체들은 사용 이후에 사용한 순서의 역순으로 Close 된다.
Connection Pool
하지만 매번 DB와의 연결을 위해 Connection 객체를 생성하는 것은 비용적으로 효율적이지 않다.
그래서 Connection Pool을 통해 Application 로딩 시점에 Connection 객체를 미리 생성해둔다.
그리고 DB와의 연결이 필요할 때마다 미리 만들어둔 Connection 객체를 사용하게 된다.
이렇게 미리 생성돼서 보관된 Connection 객체들은 Connection Pool이라는 관리자의 관리를 받는다.
SpringBoot 2.0부터는 HikariCP를 기본 DB Connection Pool로써 사용한다.
'programming > SPRING' 카테고리의 다른 글
[Spring Security] - 필터에 대한 개념 (0) | 2022.07.03 |
---|---|
Spring Data JDBC 간략 요약 (0) | 2022.06.30 |
예외 처리 (0) | 2022.06.29 |
Entity개념 복습 (0) | 2022.06.28 |
구글 로그인 구현 이후 사용자 이름이 뜨지 않는 문제 (0) | 2022.06.23 |