[SPRING] JDBC

김승수·2024년 7월 8일
0

SPRING

목록 보기
27/27

⏰ 2024. 07. 08 월

✔ 스프링 이론 강의를 듣고 정리하면서 작성했습니다.

💡 목차

  1. JDBC 란?
  2. JDBC 표준 인터페이스
  3. JDBC 동작 흐름
  4. JDBC 라이브러리
  5. spring-boot-starter-jdbc

JDBC

JDBC 란?

  • JDBC(Java Database Connectivity)는 Java 기반 애플리케이션의 데이터를 데이터베이스에 저장 및 업데이트하거나, 데이터베이스에 저장된 데이터를 Java에서 사용할 수 있도록 하는 자바 API이다.

  • Java 애플리케이션에서 데이터베이스에 접근하기 위해 JDBC API를 사용하여 데이터베이스에 연동할 수 있으며, 데이터베이스의 데이터를 쿼리(Query)하거나 업데이트하는 방법을 제공한다.

JDBC 표준 인터페이스

  • JDBC는 3가지 기능을 표준 인터페이스를 통해 정의하고 제공한다.
  1. java.sql.Connection: 애플리케이션과 데이터베이스 연결
  2. java.sql.Statement: SQL을 담은 내용 전달
  3. java.sql.ResultSet: SQL 요청에 대한 응답

JDBC 동작 흐름

  • JDBC는 Java 애플리케이션 내에서 JDBC API를 사용하여 데이터베이스에 접근하는 단순한 구조이다.

  • JDBC API를 사용하기 위해서는 JDBC 드라이버를 먼저 로딩한 후 데이터베이스와 연결하게 된다.

JDBC 드라이버

  • 데이터베이스와의 통신을 담당하는 인터페이스이다.

  • Oracle, MS SQL, MySQL 등과 같은 데이터베이스에 알맞은 각각의 JDBC 드라이버를 구현하여 제공한다.

  • JDBC 드라이버의 구현체를 이용해서 특정 데이터베이스에 접근할 수 있다.

  • JDBC 드라이버는 Type 1, 2, 3, 4 네 가지 유형이 있고 각각의 특징과 사용환경에 따라 선택한다. Type 4 드라이버(순수 자바 드라이버)가 가장 일반적으로 사용된다.

JDBC 드라이버 동작에 대한 자세한 내용은 아래의 링크에 자세히 포스팅 해 두었다.
https://velog.io/@seungsuuu/SPRING-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4-Driver <JDBC Driver 동작 순서>

SpringBoot의 JDBC

JDBC 라이브러리

  • SpringBoot는 데이터베이스 연결을 쉽게 구성할 수 있도록 라이브러리의 형태로 다양한 JDBC 드라이버를 지원한다.

  • 이러한 라이브러리를 추가하여 JDBC 드라이버를 통해 복잡한 설정 없이 데이터베이스와 견결이 가능하다.

spring-boot-starter-jdbc

  • SpringBoot 애플리케이션에서 JDBC를 통해 데이터베이스와 상호 작용하기 위해 사용되는 스타터 패키지 라이브러리이다.

  • 데이터베이스 작업을 수행하는데 필요한 주요 의존성과 자동 구성 기능을 제공한다.

  • 데이터베이스와의 연결을 쉽고 빠르게 구성할 수 있도록 도와주는 브릿지 역할이다.

주요 기능 3기능

  1. JDBC API 지원: JDBC API를 통해 SQL 데이터베이스에 접근하고 작업을 수행할 수 있다.
  2. DataSource 구성: 데이터소스 연결을 위한 기본적인 설정을 자동으로 구성한다.
  3. JdbcTemplate: JdbcTemplate는 Spring의 핵심 클래스 중 하나로, JDBC 작업의 많은 번거로움을 줄여주고, SQL 쿼리 실행, 결과 세트 처리, 예외처리 등을 단순화한다.

장점

  • 간소화된 데이터베이스 연결: DateSource 설정과 JdbcTemplate 사용을 통해 복잡한 JDBC 코드를 간소화할 수 있다.
  • 자동 구성: SpringBoot의 자동 구성 기능은 개발자가 데이터베이스 연결에 필요한 대부분의 구성을 자동으로 처리할 수 있도록 한다.
  • 효율적인 예외 처리: Spring의 DataAccessException을 통해 JDBC에서 발생하는 예외를 Spring의 일관된 예외 체계로 변환한다.
profile
개발하는 미어캣

0개의 댓글