본문 바로가기

두두의 IT

MySQL / ORM / JPA / Hibernate 용어 정리

728x90

MySQL

- 오라클 사가 관리 및 배포하고 있는 오픈소스 관계형 데이터베이스 관리 시스템

장점 : 가장 대중화 되어있고 아마존 오로라 클라우드로 이관하기 편함
 

ORM (Object Relational Mapping)

  • 객체가 관계형 데이터베이스의 테이블이 되도록 매핑 시켜주는 것
  • 객체 모델과 관계형 모델간에 불일치가 존재하는데, 이 객체간의 관계를 바탕으로 SQL을 자동 생성하여 불일치를 해결하는 것
  • SQL Query가 아닌 직관적인 코드(메서드)로서 DB의 데이터를 조작 가능

# 객체 지향 프레임워크 별로 ORM을 사용하고 있다.

- Django : ORM cookbook

- Node.js : Sequalize

- Spring Boot : Hibernate, JPA

 

 

JPA (Java Persistence API)

  • 자바 어플리케이션에서 관계형 데이터베이스를 사용하는 방식을 정의한 인터페이스
  • ORM을 사용하기 위해 만든 인터페이스
  • 특정 기능을 하는 라이브러리 아님
import javax.persistence.*;

//domain
//BaseEntity

//JPA를 정의한 javax.persistence 패키지의 대부분은 interface, enum, Exception, 각종 Annotation으로 이루어져 있다. 
//예를 들어, JPA의 핵심이 되는 EntityManager는 아래와 같이 javax.persistence.EntityManager 라는 파일에 인터페이스로 정의되어 있다.

//데이터를 생성한 프로그램이 종료되어도 사라지지 않는 데이터의 특성.
//우리가 만든 자바 프로그램이 종료되어도 디비에 데이터가 남아있게 하는 것.

 

Hibernate

  • javax.persistence.EntityManagerFactory 와 같은 JPA(인터페이스)를 직접 구현한 라이브러리

hibernate 사용방법

1. build.gradle : hibernate 라이브러리 추가
implementation 'org.hibernate:hibernate-agroal:5.4.30.Final'

2. build.gradle : mysql connector 추가
implementation 'mysql:mysql-connector-java'

3. application.properties : hibernate 설정 파일
3~23 hibernate로 변경 + hibernate를 사용할 수 있게 해주는 코드도 있어야 함

4. MimoApplication.java : main.java 또는 DB.java 파일에 hibernate 설정(db.conn() 같은..)
@EnableJpaAuditing

 

총정리