RDB는 관계형 데이터베이스(Relational Database)로, 데이터가 행과 열이 있는 테이블 형태로 구성되는 집합 이론 모델을 기반으로 한다.
전반적으로 관계형 데이터베이스는 강력하고 효율적인 데이터 저장 및 검색 기능을 제공한다.
하지만, 복잡한 객체 지향 개념을 모델링하는데 적합하지 않다. (상속, 다형성, 오브젝트, 레퍼런스)
그렇기에 테이블을 객체지향적으로 사용할 수 있도록 하기 위해서 Object Relational Mapping, 즉 ORM를 사용한다.
ORM는 객체와 DB 테이블이 매핑을 이루는 것으로, 코드 상에서 생성한 객체가 DB의 어떤 테이블과 연결된다는 것을 의미한다.
Java
JDBC는 Java Database Connectivity로, Java에서 데이터베이스에 연결하고 SQL 쿼리를 실행하기 위한 Java API이다.
데이터베이스를 사용하다 보면 다양한 데이터베이스의 종류가 있는데, 이러한 다양한 데이터베이스와의 연결을 위해서 JDBC를 사용한다.
즉, 데이터베이스의 종류와 상관없이 동일한 코드로 해결할 수 있게 해주는 것이 JDBC이다.
직접적인 SQL Query 실행
높은 유연성
저수준 API
JDBC Template은 Spring Framework의 일부로 제공되는 JDBC의 확장이다.
JBDC의 저수준 API를 추상화하여 보다 간단하고 효율적으로 DB와 상호작용할 수 있도록 지원한다.
간결한 코드
자동 리소스 관리
SQL 파라미터화
JPA는 Java Persistence API로, 객체 관계 매핑(ORM)을 위한 Java 표준 API이다.
객체와 데이터베이스 간의 매핑을 자동으로 처리하며, Hibernate, EclipseLink, OpenJPA 등의 구현체를 사용해서 실제 데이터베이스와 상호작용한다.
객체지향적 접근
쿼리 생성 자동화
캐시 및 지연 로딩