스프링 | 스프링 부트
[ 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
- 데이터 삽입과 스토어드 프로시저 호출을 위한 편리한 방법을 제공