- JPA는 java Persistence API이다.
데이터를 생성한 프로그램의 실행이 종료되더라도 영구히 데이터를 저장할 수 있도록 환경을 조성해준다.
API란 ...
애플리케이션 <-프로그래밍 <-인터페이스
프로토콜 / 인터페이스
(약속) (약속)
인터페이스:
a데이터 사용을 원하면 밤 12시 ~ 6시까지야!!
<상하관계가 존재하는 약속>
프로토콜:
싫어! -> 싫다면 email로 연락하자!
<동등한관계 존재하는 약속>
즉 JPA는 자바프로그램을 할때 영구적으로 데이터를 저장하기 위한 인터페이스이다.
- JPA는 ORM 기술이다.
ORM이란 ...
Object Relational Mapping -> 나의 하인!
원래는 DB세상에 있는 데이터(테이블)를 자바세상(object)에 모델링한다.
그러나 자바세상(object)에서 DB세상에 있는 데이터(테이블)로 JPA의 인터페이스를 지키며 모델링할 수 있다 --> ORM
- JPA는 반복적인 CRUD 작업을 생략하게 해준다.
자바 --> DB (세션 오픈, 쿼리 전송)
DB --> 자바 (connction하고 자바가 읽기 좋게 자바 object로 변환)
이 모든것들이 단순한 반복적인 일(Create, Read, Update, Delete) 그러나 JPA는 함수 하나로 CRUD작업을 생략한다.
- 자바는 영속성 컨테스트를 가지고 있다.
영속성 : 데이터를 영속적으로 저장!
컨테스트 : 대상에 대한 모든 정보
- JPA는 DB와 OOP의 불일치성을 해결하기 위한 방법론을 제공한다.(DB는 객체저장 불가능)
ORM을 통해서! 자바는 객체저장이 가능하다! 이것을 DB로 밀어넣을때는 JPA가 자동으로 집어넣준다.
- JPA는 OOP의 관점에서 모델링을 할 수 있게 해준다. (상속, 콤포지션, 연관관계)
- 방언 처리가 용이하여 Mirgration 하기 좋음. 유지보수에도 좋음.
스프링 -> JPA -> DB(추상화 객체가 붙어 있음) 오라클, 마리아, MSSQL, MYSQL 무엇을 갈아 끼워도 상관없음 DB랑 연결해서 사용