1. H2 데이터베이스란?
H2는 자바 기반 오픈소스 RDBMS입니다. 주로 인 메모리 데이터베이스로 사용되며 기능 테스트 할 때 유용합니다.
인 메모리 데이터베이스는 휘발성 데이터베이스이기 때문에 컴퓨터를 종료하면 모든 데이터가 삭제됩니다.
H2 DB를 따로 설치할 수 있지만 build.gradle dependency로 추가하면 약 2MB크기의 라이브러리로 H2 DB를 사용할 수 있습니다.
지금부터 간단하게 hibernate를 이용해서 h2 db에 테이블을 생성해보겠습니다.
2. build.gradle
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-data-jdbc'
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
compileOnly 'org.projectlombok:lombok'
runtimeOnly 'com.h2database:h2'
annotationProcessor 'org.projectlombok:lombok'
}
3. application.yml
spring:
datasource:
url: jdbc:h2:mem:test;MODE=MariaDB;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE
username: sa
password:
driverClassName: org.h2.Driver
jpa:
database-platform: org.hibernate.dialect.H2Dialect
hibernate:
ddl-auto: update
show-sql: true
properties:
hibernate:
format_sql: true
h2:
console:
enabled: true
path: /h2-console
4. Member Entity 생성
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
@Entity
public class Member {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
private String name;
//getter, setter 생략
}
5. spring boot 실행
o.s.b.a.h2.H2ConsoleAutoConfiguration : H2 console available at '/h2-console'. Database available at 'jdbc:h2:~/test'
o.hibernate.jpa.internal.util.LogHelper : HHH000204: Processing PersistenceUnitInfo [name: default]
org.hibernate.Version : HHH000412: Hibernate Core {5.4.9.Final}
o.hibernate.annotations.common.Version : HCANN000001: Hibernate Commons Annotations {5.1.0.Final}
org.hibernate.dialect.Dialect : HHH000400: Using dialect: org.hibernate.dialect.H2Dialect
Hibernate:
drop table member if exists
Hibernate:
create table member (
id integer generated by default as identity,
name varchar(255),
primary key (id)
)
spring boot가 실행되면서 h2가 로딩되는 것을 볼 수 있습니다.
그리고 hibernate에 의해서 member table이 생성되었습니다.
6. h2 console
http://localhost:포트번호/h2-console
위 url로 접속하면 아래와 같은 h2 로그인 화면이 나타납니다.
DB 연결 후 왼쪽 메뉴에 hibernate를 이용해서 생선한 Member 테이블을 확인할 수 있고 필요에 따라서 직접 sql query를 입력할 수 있습니다.
'IT > Spring' 카테고리의 다른 글
[SpringBoot] application.yml 값 암호화 하기 (jasypt) (1) | 2021.07.19 |
---|---|
[SpringBoot] HATEOAS 적용하기 (0) | 2021.06.17 |
[SpringBoot] 이메일 전송 (Gmail SMTP Server) (2) | 2021.04.30 |
[SpringBoot] tomcat 종료 시 logback thread가 종료되지 않을 경우 (0) | 2021.04.05 |
[SpringBoot] destroy event 등록하기 (0) | 2021.04.05 |