본문 바로가기

오늘의 공부 & 기록

H2 DB와 인텔리제이(IntelliJ) 연동으로 더 간편하게 DB사용하기

1. h2 데이터 베이스

- 컴퓨터에 내장된 램(RAM) 메모리에 의존하는 데이터베이스

- 램에 의존하기 때문에 서버 재가동 시 기존의 데이터가 사라짐, 그래서 초기 개발 단계에서 사용하기 좋고, 실습이나 예제 연습 때 간편하게 이용할 수 있다는 장점이 있음

 

2. h2 데이터 베이스의 3가지 모드(mode)

1) Embeded mode: JVM 위에서 실행됨, H2 DB데이터를 로컬에 저장하고 사용, 외부 접근 불가(콘솔로 접근), 설정 간편

2) Local mode: JVM 위에서 실행,  H2 DB데이터를 로컬에 저장하지 않고 메모리에만 생성, 인메모리, 외부 접근 불가(콘솔로 접근), 설정 간편

3) Server mode: 영속 사용, 외부 접근 가능, 추가 설정 필요

 

3. H2 데이터베이스와 인텔리제이(IntelliJ) 연동으로 더 간편하게 DB확인하기

1) build.gradle 수정

// runtimeOnly가 아닌 implementation으로 의존성 수정
implementation 'com.h2database:h2'

 

2) TCP Server를 Spring Boot의 Bean으로 등록하여 외부 접속 허용하기

외부 접속 허용을 하면 TCP Port를 이용해서 외부에서 접속이 가능함

여기서 외부 접속이란 인텔리제이러 접속하는 것을 말함 

@Configuration
public class H2ServerConfig {

    @Bean(initMethod = "start", destroyMethod = "stop")
    public Server H2DatabaseServer() throws SQLException {
        return Server.createTcpServer("-tcp", "-tcpAllowOthers", "-tcpPort", "9092");
    }

}

 

3) application.properties 설정

## h2 DataBase
spring.datasource.driver-class-name=org.h2.Driver
spring.datasource.url=jdbc:h2:mem:testdb;MODE=MYSQL;
spring.datasource.username=sa
spring.datasource.password=

 

4) application.properties에 설정한 값을 입력하여 DB 연결

 

5) 인텔리제이 내부에서 콘솔을 이용해서 데이터 넣어보기

 

https://kukim.tistory.com/105

 

Spring boot에서 H2 DB 3가지 모드 사용하기(embedded, In-Memory, Server)

환경 : Java 11 + Spring Boot 2.6.2 + Gradle 데이터베이스 : H2 DB H2 DB의 3가지 모드 H2DB는 자바 기반 오픈소스 RDBMS(관계형 데이터 베이스 관리 시스템)이다. H2DB Cheat Sheet를 살펴보면 세 가지 용도로 사용된

kukim.tistory.com