본문 바로가기
TIL

TIL내일배움캠프 12주차 JPA심화 JDBC

by 율량동박씨 2024. 7. 3.

오늘의 키워드

  1. JDBC(Java Database Connectivity)
  2. JDBC Driver Manager
  3. Spring Boot의 JDBC 라이브러리
  4. PreparedStatement

오늘의 내용

1. JDBC(Java Database Connectivity)

  • JDBC 드라이버란?
    • 자바 애플리케이션에서 데이터베이스에 접근할 수 있도록 하는 API.
    • 자바 애플리케이션과 특정 데이터베이스 간의 연결을 가능하게 하는 역할.
  • JDBC 드라이버 타입
    • 4가지 유형이 있으며, 일반적으로 Type 4(순수 자바 드라이버)가 사용됨.
  • JDBC의 주요 기능
    • Java와 데이터베이스를 연결.
    • JPA도 이 기술을 사용하여 구현됨.
    • 다양한 유형의 데이터베이스와 연결 가능.
  • JDBC Driver Manager
    • Connection을 생성하여 쿼리를 요청할 수 있는 상태로 만듦.
    • Statement를 생성하여 쿼리를 요청.
    • ResultSet을 생성해 쿼리 결과를 받아옴.

2. Spring Boot의 JDBC 라이브러리

  • Spring Boot의 지원
    • 다양한 JDBC 드라이버를 지원하여 개발자가 복잡한 설정 없이 데이터베이스와의 연결을 쉽게 구성 가능.
  • spring-boot-starter-jdbc
    • 데이터베이스 작업을 수행하는 데 필요한 주요 의존성과 자동 구성 기능을 제공.
  • 주요 기능
    • JDBC API 지원: SQL 데이터베이스에 접근하고 작업을 수행할 수 있음.
    • DataSource 구성: 데이터 소스 연결을 자동으로 구성.
    • JdbcTemplate: SQL 쿼리 실행, 결과 세트 처리, 예외 처리 등을 단순화.
    • 자동 구성: 대부분의 의존성을 자동으로 처리.
    • 효율적인 예외 처리: Spring의 DataAccessException을 통해 JDBC에서 발생하는 예외를 일관된 예외 체계로 변환.

3. PreparedStatement(준비된 상태)

  • Statement를 상속하는 Interface
    • 구문 분석 결과를 캐싱하여 성능을 향상.
  • Statement와의 차이점
    • Statement는 SQL문을 실행할 때마다 구문 분석을 수행하여 비효율적.
    • PreparedStatement는 구문 분석 결과를 캐싱하여 효율적.

오늘의 회고

어제오늘 병원 진료로 시간을 날려서 얼른 프로젝트 진행을 해야 되는데 이번 프로젝트에서 적용해야 되는 QueryDSL, 테스트코드 부분이 아직 이해가 잘 되지 않아 걱정이 많다 Docker강의도 들어야 하고 갈수록 할게 산더미처럼 불어나는 기분이다 그럼에도 불구하고 해야지