JPA(Java Persistence API)
JPA란? (Java Persistence API)
Java 진영의 ORM 기술 표준
객체지향 언어인 Java에서 DB를 사용할 때 발생하는 문제점
객체-관계 불일치 문제 해결을 위해 사용
- 인터페이스 구현체 ( Hibernate, EclipseLink, OpenJPA 등 )
: JPA 2.1 표준 명세를 구현한 3가지 구현체
ORM (Object-Relational Mapping)
객체지향 프로그래밍에서 사용되는 객체와 관계형 데이터베이스 간의 데이터를 변환하는 기술
JPA가 ORM 기술 활용을 통해 객체와 DB간 매핑을 자동으로 처리
👉 개발자가 직접 SQL문을 작성하지 않고 DB에 접근 가능
JPA 사용 이유
- SQL 중심 개발에서 객체 중심으로 개발하기 위해.
- Java에서 비용이 높은 객체 모델링에서 객체 간의 관계, 상속 등을 고려해야함
: 데이터베이스 스키마를 객체 모델링에 맞게 변환해주는 ORM 기술 필요
👉 생산성, 유지보수성, 확장성 향상
객체-관계 불일치란?(Object-Relational Impedance Mismatch)
객체 지향 프로그래밍 언어와 관계형 데이터베이스 시스템 간의 차이로 인해 발생하는 문제
객체 지향 언어 VS 관계형 데이터베이스
객체 지향 언어
- 객체를 중심으로 개발
- 객체 간의 참조 관계를 자유롭게 표현 가능
관계형 데이터베이스
- 데이터를 조작하는 방식으로 개발
- 외래 키를 사용하여 객체 간의 참조 관계 표현
JPQL
String sql = "select m From Member m where m.name like '%hello%";
예약어 : 대소문자 구별 X ( select, from, where, like ...)
클래스명 : 대소문자 구별 O (Member은 테이블명이 아닌 클래스명)