노션으로 다시 돌아갔습니다 😅

JDBC 란?

by mignon25

JDBC란?

  • 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 객체를 사용함으로써 애플리케이션의 성능을 향상할 수 있다.

블로그의 정보

Mignon'S Dev Log

mignon25

활동하기