JPA가 무엇이냐고 묻는다면

zihooy·2022년 9월 20일
1
post-thumbnail

JPA에 대한 무성한 소문만 들어왔던 나.. 마음먹고 JPA에 대해 공부하기로 했다!

🏹 JPA란 무엇인가

JPA : Java Persistence API. 한마디로 내장 API를 활용하여 기본적인 CRUD를 아주 간편하게 개발할 수 있도록 돕는 툴이다 !

🏹 JPA와 ORM

  • JPA를 이해하기 위해서는 ORM에 대해 알아야 한다!
    ORM : Object-relational mapping ( 객체 관계 매핑 )
    객체는 객체대로 설계
    관계형 DB는 DB대로 설계
    ORM Framework가 중간에서 서로를 mapping
  • JPA는 현재 자바 ORM 기술의 표준 → 인터페이스의 형태
    이러한 JPA 인터페이스를 구현한 대표적인 오픈소스 → Hibernate

🏹 JPA 동작 과정

  • JPA는 Java Application과 JDBC 사이에서 동작한다.
    개발자가 JPA를 사용하면, JPA 내부에서 JDBC API를 사용하여 SQL을 호출하여 DB와 통신
    => 즉, 개발자가 직접 JDBC API를 쓰는 것이 아니다 !
    Untitled

  • 저장 과정
    MemberDAO의 객체를 저장하는 과정
    - 개발자: JPA에 Member 객체를 넘김
    - JPA: Member 엔티티 분석 → Insert SQL 생성 → JDBC API를 사용하여 SQL을 DB에 날림

  • 조회 과정
    Member의 객체를 조회하는 과정
    - 개발자: JPA에 Member의 id를 넘김
    - JPA: 엔티티의 매핑 정보를 바탕으로 적절한 SELECT SQL을 생성
    → JDBC API를 사용하여 SQL을 DB에 날린다.
    → DB로부터 결과를 받아온다.
    → 결과(ResultSet)를 객체에 모두 매핑한다.

🏹 JPA를 왜 사용하는가 ?

  • (아주아주) 간편한 CRUD 저장: jpa.persist(member)
    조회: Member member = jpa.find(memberId)
    수정: member.setName("변경할 이름")
    삭제: jpa.remove(member)
profile
thisIsZihooLog

0개의 댓글