Java Database Connectivity, 즉 JDBC는 자바에서 DB와 연결하여 데이터를 조회 및 조작할 수 있게 해주는 표준 API이다.
다양한 관계형 데이터베이스에 코드의 변경없이 접근할 수 있게 해주는 역할을 한다.
데이터베이스와의 통신을 위한 기본적인 기능을 지원하고, SQL을 실행하고 결과를 처리하는 데 필요한 모든 작업들을 처리한다.
JDBC Driver
DriverManager
Connection
DriverManager.getConnection() 을 통해 설정Statement
ResultSet
Spring Framework에서 제공하는 JDBC API를 더 쉽게 사용할 수 있도록 도와주는 유틸리티 클래스이다.
JDBC를 사용할 때 발생하는 반복적인 작업들을 간소화하여 데이터베이스 접근을 효율적으로 처리할 수 있게 해준다.
결과적으로 코드의 복잡성을 줄이고, 간결하게 JDBC 기반의 데이터 액세스를 구현할 수 있게 된다.
반복 코드 제거
- 데이터베이스 연결, 쿼리 실행, 예외 처리, 자원 해제 등의 반복적인 코드를 줄일 수 있다.
간단한 API
- 간단한 메서드 호출만으로 대부분의 데이터베이스 작업을 수행할 수 있다.
예외 처리 통합
- Spring의 DataAccessException 계층을 통해 다양한 SQL 예외를 한 가지 예외로 일관되게 처리할 수 있다.
명확한 코드 구조
- 코드가 간결해지며, 비즈니스 로직에 더 집중할 수 있다.
복잡한 객체 관계 처리 부족
- Hibernate나 JPA와 같은 ORM은 객체 간의 복잡한 관계를 자동으로 매핑해주지만, JdbcTemplate은 이러한 기능이 부족하기에, 객체 간의 연관 관계를 직접 처리해야 하는 불편함이 있다.
SQL 직접 작성
- ORM과 달리 SQL 쿼리를 직접 작성해야 하므로, 복잡한 쿼리 관리에 대한 부담이 있을 수 있다.
CRUD 작업
배치 작업
데이터 매핑
예외 처리