[ Spring ] Spring Data JDBC 개념

2025. 3. 31. 18:26·스프링 | 스프링 부트

1. JDBC와 Spring Data JDBC의 차이점

1-1 JDBC (Java Database Connectivity)

  • java에서 데이터베이스에 접근할 수 있게 해주는 API로, SQL 쿼리 진행, 데이터베이스 연결 관리 등의 기능 제공
  • JDBC는 데이터베이스와의 직접적인 상호작용을 처리하지만, 이를 사용하기 위위해서는 많은 보일러 플레이트 코드가 필요
    • 보일러 플레이트 코드 : 컴퓨터 프로그래밍에서 반복적으로 사용되는 코드

1-2 Spring Data JDBC

  • Spring 프레임워크의 일부로, JDBC의 복잡성을 추상화하고, 간소화 한다.
  • Spring JDBC는 템플릿 디자인 패턴을 사용하여 코드 중복을 줄이고, 개발자가 SQL 쿼리에 집중할 수 있도록 돕는다.

 

 

 

2. Spring Data JDBC의 장점

2-1 간소화된 에러 처리

  • JDBC의 복잡하고 다양한 예외처리를 스프링의 DataAcceessException으로 일관되게 처리할 수 있다.

2-2 리소스 관리

  • 데이터베이스 연결과 같은 리소스를 자동으로 관리하며, 사용 후에는 적절하게 클로즈하여 리소스 누수를 방지한다.

2-3 간결한 코드

  • Jdbc Template과 같은 템플릿 클래스를 사용하여 반복적인 코드 작성을 줄일 수 있다.

2-4 풍부한 기능 제공

  • 데이터 액세스를 위한 다양한 편의 기능을 제공하며, SQL 쿼리 실행, 업데이트, 스토어드 프로시저 호출, 트랜잭션 관리 등을 수행할 수 있다.

 

 

 

3. Spring Data JDBC 구조 이해

3-1 DataSource

  • 모든 Spring JDBC 작업의 기반으로, 데이터베이스 연결을 관리한다.
  • SpringBooy에서는 application.properties, application.yml 파일을 통해 DataSource를 쉽게 설정할 수 있다.

3-2 JdbcTemplate

  • SQL 쿼리 실행을 단순화 하는 주요 클래스이다.
  • 예를들어 데이터베이스 연결을 열고, PreparedStatement를 생성하고, 실행하며, 결과를 매핑하고, 모든 리소스를 자동으로 정리한다.

3-3 NamedParameterJdbcTemplate

  • JdbcTemplate의 확장으로, 쿼리에서 이름 기반의 파라미터를 사용하여 쿼리 가독성과 유지보수성을 높일 수 있다.

3-4 SimpleJdbcInsert와 SimpleJdbcCall

  • 데이터 삽입과 스토어드 프로시저 호출을 위한 편리한 방법을 제공

'스프링 | 스프링 부트' 카테고리의 다른 글

[ Spring ] : 스프링이란 ?  (1) 2025.06.13
[ Spring ] @Transactional 이란?  (0) 2025.04.02
[ Spring ] Filter / FilterChain 개념, 사용법  (0) 2025.02.26
[ Spring ] @RequiredArgsConstructor란 ?  (0) 2025.02.07
[ Spring ] @Transactional과 예시  (0) 2025.02.07
'스프링 | 스프링 부트' 카테고리의 다른 글
  • [ Spring ] : 스프링이란 ?
  • [ Spring ] @Transactional 이란?
  • [ Spring ] Filter / FilterChain 개념, 사용법
  • [ Spring ] @RequiredArgsConstructor란 ?
Adose
Adose
  • Adose
    도즈의 개발 블로그
    Adose
  • 전체
    오늘
    어제
    • 분류 전체보기 (183)
      • JAVA (22)
      • 스프링 | 스프링 부트 (30)
        • 스프링 시큐리티 (1)
        • 채팅 (1)
      • 스프링 프로젝트 (5)
        • JDBC - 은행앱 구현 (1)
        • Spring Boot - 독서 블로그 프로젝트 (3)
        • 개인 프로젝트 - CoreBrief (1)
      • 가상화 기술 (1)
      • Git (1)
      • 코딩테스트 (37)
        • 프로그래머스 입문 (68)
      • AWS (1)
      • 데이터베이스 (0)
      • CS 공부 (4)
      • 알고리즘, 자료구조 (5)
      • 우테코 프리코스 (7)
      • 트러블 슈팅 (1)
      • 프론트 (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
    • 글쓰기
    • 관리
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    자바
    스프링
    멋쟁이사자처럼백엔드
    프론트
    Java
    springdatajdbc
    Spring
    test
    GIT
    프로그래머스
    코딩테스트
    LV1
    jdbc
    스프링부트
    LV0
    LV2
    멋쟁이사자처럼
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
Adose
[ Spring ] Spring Data JDBC 개념
상단으로

티스토리툴바