스프링 | 스프링 부트

[ Spring ] Spring Data JDBC 개념

Adose 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

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