[JAVA] Spring JPA, Spring Data api란?

김훈·2022년 1월 28일
0

[JAVA]

목록 보기
5/5
post-thumbnail

1. 용어 정리

1. ORM(Object-relational mapping)

  • Object-relational mapping (객체 관계 매핑)
    : 객체는 객체대로 설계하고, 관계형 데이터베이스는 관계형 데이터베이스대로 설계되어 있다
    이를 ORM 프레임워크가 중간에서 매핑해준다.

1. EJB

  • 과거의 자바 표준 (Entity Bean)

  • 과거의 ORM

  • 코드가 지저분하고 복잡하고 느리다.

3. JPA (Java Persistence API)

  • 현재 자바 진영의 표준 ORM으로, 인터페이스의 모음이다.
    • 즉 실제로 동작하는 것은 아니다.

    • 해당 인터페이스로 구현한 대표적인 오픈소스가 Hibernate 라고 할 수 있다.


2. JPA 동작 과정

  • JPA는 애플리케이션과 JDBC 사이에서 동작한다.

    • 개발자가 JPA를 사용하면, JPA 내부에서 JDBC를 사용해 SQL문을 호출하고 DB와 연결한다.
    • 개발자가 직접 JDBC를 쓰는게 아님!!

    1. 예제

    • INSERT 과정

      1. MemberDAO에서 객체를 저장하고 싶을 때, 개발자가 JPA에 Member 객체를 넘긴다.
      2. Member 엔티티를 분석한다.
      3. INSERT SQL을 생성한다.
      4. JDBC API를 사용하여 SQL을 DB에 날린다.

    • SELECT 과정

      1. Member 객체를 조회하고 싶을 때 개발자는 member의 pk 값을 JPA에 넘긴다.
      2. 엔티티의 매핑 정보를 바탕으로 적절한 SELECT SQL을 생성한다.
      3. JDBC API를 사용하여 SQL을 DB에 날린다.
      4. DB로부터 결과를 받아온다.
      5. 결과(ResultSet)를 객체에 모두 매핑한다.

  • 쿼리를 JPA가 만들어 주기 때문에 Object와 RDB 간의 패러다임 불일치를 해결할 수 있다.

1. 정리

  • JPA는 DAO에서 JPA로 값만 보내주면 알아서 SQL문을 작성해 DB에 접근한다.
  • 복잡한 쿼리문은 직접 작성 할 수도 있다.
  • 자동으로 작성해주기 때문에 DB(쿼리문)중심 개발이 아닌 객체(JAVA)지향적 개발이 가능하다.


출처 : https://gmlwjd9405.github.io/2019/08/04/what-is-jpa.html

profile
작고 소중한 개발 노트

0개의 댓글