[JPA] JPA란?(JPA ORM) / JPQL(객체지향 쿼리)

JOY·2023년 5월 4일
0

[JPA]

목록 보기
1/1

JPA(Java Persistence API)

JPA란? (Java Persistence API)

Java 진영의 ORM 기술 표준

객체지향 언어인 Java에서 DB를 사용할 때 발생하는 문제점
객체-관계 불일치 문제 해결을 위해 사용

  • 인터페이스 구현체 ( Hibernate, EclipseLink, OpenJPA 등 )
    : JPA 2.1 표준 명세를 구현한 3가지 구현체

ORM (Object-Relational Mapping)

객체지향 프로그래밍에서 사용되는 객체와 관계형 데이터베이스 간의 데이터를 변환하는 기술

JPA가 ORM 기술 활용을 통해 객체와 DB간 매핑을 자동으로 처리

👉 개발자가 직접 SQL문을 작성하지 않고 DB에 접근 가능

JPA 사용 이유

  • SQL 중심 개발에서 객체 중심으로 개발하기 위해.
  • Java에서 비용이 높은 객체 모델링에서 객체 간의 관계, 상속 등을 고려해야함
    : 데이터베이스 스키마를 객체 모델링에 맞게 변환해주는 ORM 기술 필요
    👉 생산성, 유지보수성, 확장성 향상

객체-관계 불일치란?(Object-Relational Impedance Mismatch)

객체 지향 프로그래밍 언어와 관계형 데이터베이스 시스템 간의 차이로 인해 발생하는 문제

객체 지향 언어 VS 관계형 데이터베이스

객체 지향 언어

  • 객체를 중심으로 개발
  • 객체 간의 참조 관계를 자유롭게 표현 가능

관계형 데이터베이스

  • 데이터를 조작하는 방식으로 개발
  • 외래 키를 사용하여 객체 간의 참조 관계 표현

JPQL

String sql = "select m From Member m where m.name like '%hello%";

예약어 : 대소문자 구별 X ( select, from, where, like ...)
클래스명 : 대소문자 구별 O (Member은 테이블명이 아닌 클래스명)

profile
Just Do IT ------- 🏃‍♀️

0개의 댓글