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기반)
그럼 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를 쉽게 사용하기 위해 스프링에서 제공하고 있는 프레임워크이다.