ORM 이란?
ORM은 SQL을 사용하지 않고 데이터베이스를 관리할 수 있는 도구
예)
SQL문으로 question 테이블에 데이터를 저장하는법
insert into question (id, subject, content) values (1, '안녕', '가입인사용');
insert into question (id, subject, content) values (2, '질문', '질문이잇어용');
하지만 ORM을 사용하면 이러한 쿼리문 대신 자바코드로 다음처럼 작성할수 있다.
Question q1 = new Question();
q1.setId(1);
q1.setSubject("안녕");
q1.setContent("가입인사용");
this.questionRepository.save(q1);
Question q2 = new Question();
q2.setId(2);
q2.setSubject("질문");
q2.setContent("질문이잇어용");
this.questionRepository.save(q2);
JPA란?
JPA(Java Persistence API)는 자바애플리케이션에서 관계형 데이터베이스를 효율적으로 사용하기 위한
자바 표준 ORM(Object-Relational Mapping) 기술입니다
간단히 말해, JPA는 자바객체와 데이터베이스 테이블을 매핑하여 개발자가 복잡한 SQL 쿼리를 직접 작성하지 않고도
객체 지향적인 방식으로 데이터베이스와 상호작용할 수 있도록 도와주는 표준 인터페이스들의 모음
JPA설정(application.properties)
# JPA 설정
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.H2Dialect
# 스프링 부트와 하이버네이트를 함께 사용할 때 필요한 설정항목이다. 표준 SQL이 아닌
하이버네이트만의 SQL을 사용할 때 필요한 항목으로 하이버네이트의 org.hibernate.dialect.H2Diablect 클래스를 선정
spring.jpa.hibernate.ddl-auto=update
# 엔티티를 기준으로 데이터의 테이블을 생성하는 규칙을 설정
none : 엔티티가 변경되더라도 데이터베이스를 변경하지 않는다
update : 엔티티의 변경된 부분만 데이터베이스에 적용한다
validate : 엔티티와 테이블 간에 차이점이 있는지 검사만 한다.
create : 스프링 부트 서버를 시작할 때 테이블을 모두 삭제한 후 다시 생성한다
create-drop : create와 동일하지만 스프링 부트 서버를 종료할 때에도 테이블을 모두 삭제한다
개발 환경에서는 보통 update 모드를 사용하고, 운영환경에서는 none 또는 validate를 주로 사용한다
'알게된것,복습한것,헷갈렸던것 정리' 카테고리의 다른 글
| LIKE와 =(등호) 차이 (0) | 2025.10.03 |
|---|---|
| 오버로딩(Overloading) 이란? (0) | 2025.09.27 |
| @NoArgsConstructor, @AllArgsConsturctor, @RequiredArgsConstructor 정리 (0) | 2025.09.11 |
| 파라미터와 기본생성자 (4) | 2025.08.01 |
| 테스트코드, 단위테스트 (2) | 2025.07.17 |