[점프 투 스프링부트] 2-03 JPA

dwkim·2023년 3월 29일
0

ORM (object relational mapping)

  • 데이터베이스에 데이터를 저장하는 테이블자바 클래스로 만들어 관리하는 기술
  • ORM을 사용하면 내부에서 SQL 쿼리를 자동으로 생성해 주므로 직접 작성하지 않아도 된다.
    • 자바 문법만으로도 데이터베이스를 다룰 수 있다.
    • 개발자가 달라도 통일된 쿼리를 작성할 수 있고 오류 발생률도 줄일 수 있다.
  • 데이터베이스 종류에 상관 없이 일관된 코드를 유지할 수 있어서 프로그램을 유지·보수하기가 편리하다.


question 테이블에 새로운 데이터를 삽입하는 쿼리는 보통 다음처럼 작성한다.

insert into question (subject, content) values ('안녕하세요', '가입 인사드립니다 ^^');
insert into question (subject, content) values ('질문 있습니다', 'ORM이 궁금합니다');

하지만 ORM을 사용하면 쿼리 대신 자바 코드로 다음처럼 작성할 수 있다.

Question q1 = new Question();
q1.setSubject("안녕하세요");
q1.setContent("가입 인사드립니다 ^^");
this.questionRepository.save(q1);

Question q2 = new Question();
q2.setSubject("질문 있습니다");
q2.setContent("ORM이 궁금합니다");
this.questionRepository.save(q2);




엔티티 (Entity)

데이터를 관리하는 데 사용하는 ORM 클래스 (ex. 위 코드의 Question 클래스)


JPA (Java Persistence API)

자바 진영에서 ORM의 기술 표준으로 사용하는 인터페이스의 모음

  • 스프링부트는 JPA를 사용하여 데이터베이스를 처리한다.
  • JPA는 인터페이스이다. 따라서 인터페이스를 구현하는 실제 클래스가 필요하다. JPA를 구현한 대표적인 실제 클래스에는 하이버네이트(Hibernate)가 있다. SBB도 JPA + 하이버네이트 조합을 사용한다.








출처: https://wikidocs.net/161164

profile
예비 백엔드 개발자

0개의 댓글