JPA (Java Persistence API) 

JAVA에서 제공하는 API / 자바 어플리케이션에서 RDB를 사용하는 방식을 정의한 인터페이스 

자바 ORM 기술에 대한 표준 명세 (스프링 X)

데이터를 객체지향적으로 관리 > 개발자가 비즈니스 로직에 집중 

 

동작 과정

Java 애플리케이션과 JDBC 사이에서 동작

개발자가 JPA 사용 (개발자가 JDBC API 사용 X) > JPA 내부에서 JDBC API 사용 > SQL호출 > DB 통신

 

JPA의 insert 수행 (개발자 -> JPA에 Member 객체 넘김)    /   JPA의 find 수행 (개발자 -> JPA에 member의 pk 넘김) 

 

ORM (Object-Relation Mapping) : DB데이터 <-mapping-> Object 필드

객체-관계 매핑 = 자바 클래스와 DB 테이블을 매핑

SQL 매핑 X, SQL 자동 생성됨 (JPA, Hibernate)

필드 변경 시 JPA에 추가만 하면 됨

 

JPA : 자바객체-DB 매핑 위한 인터페이스 제공

 

JPA 구현체(인터페이스) : Hibernate, EclipsLink, DataNucleus, OpenJPA, TopLink Essentials

 

Spring Data JPA : 스프링에서 제공하는 JPA 프레임워크

> Spring Data JPA가 Hibernate보다 구현체 교체/ 저장소 교체 용이

 

 

 

 

 

 

 

 

 

 

 

SQL Mapper : SQL <- mapping -> Object 필드

SQL로 DB 조작 (Mybatis, jdbcTemplate)

필드 변경 시 모든 SQL 수정해야 함

 

JDBC  : Java Data Access 기술의 근간 (자바 API)

 

 

계층화 아키텍처

Domain Model = Business logic layer

 

 


Reference

 

JPA는 도대체 뭘까? (orm, 영속성, hibernate, spring-data-jpa)

JPA는 도대체 무엇일까요? orm, jdbc, 영속성, hibernate, ... 관련 지식까지 모두 파해쳐봅니다.

velog.io

 

 

@hgraca

 

herbertograca.com

 

반응형

+ Recent posts