1월 3일 JPA , Java Persistence API
JPA , Java Persistence API
자바 진영의 ORM 기술표준
ORM 은 객체와 RDB 두 기능 위에 있는 기술로
둘다 알아야 JPA를 사용할 수 있다,
ORM 이란?
Object-relation mapping , 객체 관계 매핑 , 객체 + 관계를 매핑
-객체는 객체대로 설계
-관계형 데이터베이스는 관계형 데이터베이스 대로 설계
-ORM프레임 워크가 중간에서 매핑
-대중적인 언어에는 대부분 ORM기술이 존재
JPA는 애플리케이션과 JDBC사이에서 동작한다.
Java > JPA > JDBC API > SQL > 결과 반환 > JDBC AP
I > JPA > java
JPA동작 - 저장
MemberDAO > persist(여기에 객체 저장) > JPA(객체를 넘겨받음)
이때 JPA에선 넘겨받은 객체를 대상으로 아래와 같은 작업을 한다.
-객체분석
-적절한 SQL 생성
-JPA가 JDBC API를 이용해 DB와 통신
-결과를 반환받는다.
-패러다임의 불일치 해결.
DAO에서 객체(persist)나 ID값을 JPA에게 넘겨주고
JPA는 목적에 맞는 API를 생성 , 이후 JDBC API를 사용
결과값을 반환받고 , 패러다임의 불일치 해결
JPA는 표준명세
-JPA는 인터페이스의 모음이다.
-JPA는 2.1표준 명세를 구현한 3가지 구현체
-하이버네이트 , 이클립스 링크 . 데이터너클래스
JPA를 사용해야 하는 이유
-SQL 중심적인 개발에서 객체 중심으로 개발
-생산성
-유지보수
-패러다임 불일치 해경
-성능
-데이터 접근 추상화와 벤더 독립성
-표준
생산성 JPA의 CRUD , API를 호출하면 된다.
저장 : JPA.persist(member)
조회 : Member member = jpa.find(memberId)
수정 : member.setName("변경할 이름") = 자동으로 update쿼리가 나온다.
삭제 : jpa.remove(member)
수정이 가능한 이유는 List에서 객체를 불러와 set 한뒤 다시 안넣어줘도 Lsit에 이미 객체가 존재하는 이유와 같다.
즉 불러와서 수정된 시점에서 수정이 완료된것,