점프 투 스프링부트를 참고하여 학습,작성하였습니다.
1.ORM(Object-Relational Mapping)
객체와 관계형 데이터베이스의 데이터를 매핑하는 기술
1-1.ORM 특징
- 객체 지향 프로그래밍 언어와 관계형 데이터베이스의 패러다임 간 차이를 줄임
- SQL 쿼리를 직접 작성하지 않고도 데이터베이스 작업을 수행(자동화)
- 객체 지향적인 코드 작성으로 코드의 가독성과 유지보수성을 높임
- 매핑: 데이터베이스 테이블을 클래스에, 테이블의 행을 객체에 매핑
- CRUD 작업: ORM 라이브러리를 사용하여 객체를 데이터베이스에 CRUD함
- 자동 쿼리 생성: ORM 프레임워크가 필요한 SQL 쿼리를 자동으로 생성하고 실행
2. JPA (Java Persistence API)
자바 애플리케이션에서 객체와 관계형 데이터베이스 간의 매핑을 관리하는 자바 표준 명세
ORM 프레임워크의 일종이다.
2-1.JPA 개념
- Entity: 데이터베이스 테이블에 매핑되는 자바 클래스입니다. 각 인스턴스는 데이터베이스 테이블의 한 행(row)에 해당
- Entity Manager: 엔티티의 생명 주기(생성, 읽기, 업데이트, 삭제)를 관리하는 인터페이스
- Persistence Unit: JPA가 사용할 엔티티 클래스와 설정 정보를 포함하는 단위
- Query Language: JPQL(Java Persistence Query Language)은 엔티티 객체를 대상으로 하는 SQL 유사 쿼리 언어
2-2.JPA의 어노테이션
- @Entity: 클래스를 JPA 엔티티로 지정
- @Table: 엔티티와 매핑되는 데이터베이스 테이블을 지정
- @Id: 엔티티의 기본 키를 지정
- @GeneratedValue: 기본 키 값을 자동으로 생성하도록 설정
- @Column: 엔티티 필드와 매핑되는 데이터베이스 컬럼을 지정
- @OneToOne, @OneToMany, @ManyToOne, @ManyToMany: 엔티티 간의 관계를 설정
3.H2 데이터베이스
Java로 작성된 RDBMS
H2는 내장형 데이터베이스로 동작할 수 있으며, 디스크 기반 데이터베이스로도 사용된다.
4.SpringBoot에서 사용하기
4-1.의존성 추가
pom.xml 파일에 JPA와 H2데이터 베이스의 의존성을 추가 시킨다.
<!--h2-->
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<scope>runtime</scope>
</dependency>
<!--JPA-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
4-2.설정
application.properties에서 H2 Database 를 사용하기 위한 설정을한다.
spring.h2.console.enabled=true | 콘솔의 사용 여부를 설정 True(활성화) |
spring.h2.console.path=/h2-console | H2 콘솔의 경로를 설정 http://localhost:8080/h2-console로 설정함 |
spring.datasource.url=jdbc:h2:~/local | H2 데이터베이스의 연결 URL을 설정 ~/ 은 사용자 홈디렉토리를 의미함 사용자의 홈디렉토리에 local.mv.db DB와 연결함 |
spring.datasource.driverClassName=org.h2.Driver | 사용할 JDBC 드라이버의 클래스를 지정 |
spring.datasource.username=sa | H2 데이터베이스에 접속할 때 사용할 사용자 이름 |
spring.datasource.password= | H2 데이터베이스에 접속할 때 사용할 사용자 비밀번호 |
4-3.DB 생성
copy con local.mv.db 을 입력후 Ctrl + Z 후 Enter을 입력해
local.mv.db 파일을 생성한다.
이는 properties의 설정값인 spring.datasource.url=jdbc:h2:~/local
로 연결된다.
4-4.DB접근
springboot를 실행후 http://localhost:8080/h2-console에 접속한다.
spring.datasource.url 연결주소인 jdbc:h2:~/local로 JDBC URL 경로를 변경후 연결한다.
연결완료
5.JPA 설정
properties에 JPA 설정을 추가한다.
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.H2Dialect
Hibernate의 H2 데이터베이스용 Dialect(방언)을 설정
H2Dialect은 SQL 문법 지원,데이터 타입 매핑,SQL 함수 지원을 한다.
spring.jpa.hibernate.ddl-auto=update
Hibernate가 데이터베이스 스키마를 자동으로 관리하는 방식을 설정
update: Hibernate는 기존 스키마를 유지하면서 새로운 변경 사항을 적용하도록 합니다.
애플리케이션 실행 시 엔티티 클래스의 변경사항에 따라 자동으로 데이터베이스 스키마를 수정
6.Hibernate
Java 언어를 위한 객체-관계 매핑(ORM) 프레임워크
방언(Dialect)은 Hibernate가 다양한 데이터베이스 벤더들과 상호작용할 수 있도록 해주는 중요한 구성 요소
'BackEnd > SpringBoot' 카테고리의 다른 글
[Spring Boot] 엔티티 테이블 매핑 (0) | 2024.06.21 |
---|---|
[Spring Boot] URL 매핑, 컨트롤러 (0) | 2024.06.19 |
[Spring Boot] Spring Boot 파일 구조4 src/ (0) | 2024.06.19 |