Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

코드와이

[웹] JPA 본문

[웹] JPA

코드와이 2021. 8. 8. 17:38

JPA

 

SQL Mapper

  • SQL 문을 직접 작성해서 DB에 접근합니다.
  • Mybatis, jdbcTemplate

 

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

  • 객체는 객체대로 설계하고, 관계형 데이터베이스는 관계형 데이터베이스대로 설계합니다.
  • 객체를 통해 간접적으로 DB 데이터를 다룹니다.
  • 객체와 DB의 테이블을 자동으로 매핑시킵니다.
  • JPA, Hibernate

 

JPA(Java Persistence API)

자바 ORM 기술에 대한 표준 명세로, 자바에서 제공하는 API 입니다. 자바 어플리케이션에서 관계형 데이터베이스 사용을 정의한 인터페이스입니다. 자바 클래스와 관계형 DB 테이블을 매핑합니다. spring-data-jpa 는 스프링에서 제공하는 프레임워크입니다. 

  • 데이터를 객체지향적으로 관리할 수 있기 때문에 개발자는 비즈니스 로직에 집중할 수 있고 객체지향적인 개발이 가능합니다.
  • 자바 객체와 DB 테이블 사이의 매핑 설정을 통해 SQL 을 생성합니다.
  • 객체를 통해 쿼리를 작성할 수 있는 JPQL(Java Persistence Query Language) 를 지원합니다.
  • JPA 는 성능 향상을 위해 지연 로딩이나 즉시 로딩과 같은 몇가지 기법을 제공하는데 이것을 잘 활용하면 SQL 을 직접 사용하는 것과 유사한 성능을 얻을 수 있습니다.

 

JPA 동작 흐름

JPA 는 자바 어플리케이션과 JDBC 사이에 위치해 있다. 개발자가 직접 JDBC 를 사용하지 않고 JPA 를 사용하면 JPA 내부에서 JDBC API 를 호출하여 DB 에 접근합니다. 

  • insert
    1. DAO에서 객체를 저장하고 싶을 때 개발자는 JPA에 객체를 넘깁니다.
    2. JPA 가 객체를 분석하고 SQL 문을 생성합니다.
    3. JDBC API 를 사용해서 DB 에 접근합니다.
  • find
    1. 객체의 primary key 를 JPA 에 넘깁니다.
    2. JPA 가 매핑되는 객체를 분석해서 SELECT SQL 문을 생성합니다.
    3. DB 에 접근해서 결과값을 가져옵니다.
    4. 결과를 객체에 모두 매핑시킵니다. 

 

'' 카테고리의 다른 글

[웹] Elasticsearch 보안 설정 및 적용  (0) 2021.10.09
[웹] Elasticsearch 기본 예제  (0) 2021.09.29
[웹] Spring(3) Interceptor  (0) 2021.08.07
[웹] JPA @GeneratedValue(strategy = GenerationType.IDENTITY)  (0) 2021.07.13
[웹] Vue.js(3)  (0) 2021.05.13