Jun's note

[JPA] JPA, ORM, Spring Data JPA 란? 본문

Programming/JPA

[JPA] JPA, ORM, Spring Data JPA 란?

junning 2022. 1. 13. 11:01
728x90

JPA (Java Persistence API)

  • 자바 ORM 기술에 대한 표준 명세로, JAVA에서 제공하는 API이다. (순수 JPA를 의미) (객체를 DB에 매핑)
  • 자바 어플리케이션에서 관계형 데이터베이스를 사용하는 방식을 정의한 인터페이스이다. 
  • ORM이기 때문에 자바 클래스와 DB테이블을 매핑한다. (sql을 매핑 x 즉 sql 직접 짜는것이 아님)
  • ORM의 한 종류이다 (JAVA기반)

사진 출처: https://velog.io/@adam2/JPA는-도데체-뭘까-orm-영속성-hibernate-spring-data-jpa


그럼 ORM은 무엇일까?

ORM (Object-Relation Mapping, 객체-관계 매핑)

  • Object - 매핑 - DB 데이터
  • 객체를 디비에 자동으로 매핑해준다. (매서드로 데이트를 조작할 수 있고, 객체간 관계를 바탕으로 sql을 자동으로 생성함)
  • 객체를 통해 간접적으로 디비 데이터를 다룬다.
  • 종류: JPA, Hibernate

JPA와 JDBC는 어떤 차이인가?

 

먼저, JDBC란?

자바 애플리케이션과 데이터베이스를 연결하여 서로 데이터를 주고 받을 수 있게 해주는 인터페이스이다.

쉽게 말하면 애플리케이션 <-> 데이터베이스를 연결하는 느낌이다. (둘을 연결해주는 다리를 만드는 느낌)

 

 

지금은 JPA가 JDBC API를 자동 호출한다. (JPA>JDBC API)

그래서 JDBC API 부분은 특별히 건드리지 않아도 된다.

만약 JPA가 JDBC API를 다루지 않는다면, 아래의 과정이 필요하다.

1) JDBC Driver loading

2) Connection

3) Statement/ PreparedStatement

4) executeUpdate() or executeQuery()

5) ResultSet (select의 경우)

6) close

 


그럼 Spring Date JPA는 무엇일까?

Spring Data JPA

쉽게 말하면 JPA를 쉽게 사용하기 위해 스프링에서 제공하고 있는 프레임워크이다.

사진 출처:&nbsp;https://velog.io/@adam2/JPA는-도데체-뭘까-orm-영속성-hibernate-spring-data-jpa

 

Comments