Spring에서 H2 InMemory DB 사용하기(2)

이주형·2023년 3월 27일
0

H2DB 사용하기

목록 보기
2/2

Intro

저번 시리즈에서는 Spring에서 H2 InMemory 사용법에 대해 이야기를 하였고

H2 Console에 접속에서 사용할 수 있지만 본인이 익순한 DataBase Tool을 사용하기를 원 합니다 그래서

이번 시간에서는 DataBase Tool를 이용하여 Connection 하는 법에 대해서 이야기 해보겠습니다

어 그냥 DataBase Tool에다가 정보 입력하고 쓰면 되는거 아니야

할 수도 있겠지만 그렇지 않습니다 Spring에 설정과 추가적으로 작성해줘야 할 코드가 존재하며

H2DB 버전에 따라 설정해줘야 할것들이 있습니다

많이 쓰는 intellij의 DataBase Tool와 Dbeaver에 Connection 연결해보고 SELECT를 실행시켜보겠습니다

gradle 혹은 Maven 의 dependency 설정 변경

Project Assist로 Project 생성하였다면 runtime 속성으로 되어 있을것이다

해당 속성을 변경을 해주어야만 org.h2.tools.Server Package를 사용 할 수가 있다

Maven 같은 경우에는 scope 지웠고 Gradle의 경우 에는 implementation로 변경해주었다

ASIS

Maven

        <dependency>
            <groupId>com.h2database</groupId>
            <artifactId>h2</artifactId>
            <version>2.1.214</version>
            <scope>runtime</scope>
        </dependency>

Gradle

runtimeOnly 'com.h2database:h2:2.1.214'

TOBE

Maven

        <dependency>
            <groupId>com.h2database</groupId>
            <artifactId>h2</artifactId>
            <version>2.1.214</version>
        </dependency>

Gradle

implementation 'com.h2database:h2:2.1.214'

Code

아래의 Code는 H2DB를 TcpServer 실행 시키는 코드이며 Port는 "9092" 를 사용했습니다

@Configuration
public class H2ServerConfig {

    @Bean
    public Server H2DatabaseServer() throws SQLException {
        //jdbc:h2:tcp://localhost:9092/mem:testdb;OLD_INFORMATION_SCHEMA=TRUE
        Server tcpServer = Server.createTcpServer("-tcp", "-tcpAllowOthers", "-tcpPort", "9092");
        if(tcpServer.isRunning(true)){
            tcpServer.start();
        }
        return tcpServer;
    }
}

DataBase Tool 연결

저번 시간에서 application.yml에 datasource URL jdbc:h2:mem:testdb 로 설정해줬습니다

H2 Server Connection URL은 jdbc:h2:tcp://localhost:9092/mem:testdb이고 계정정보는 sa 입니다

  datasource:
    url:  jdbc:h2:mem:testdb
    driver-class-name: org.h2.Driver
    username: sa
    password:

intellij DataBase Tool

intellij DataBase Tool에서 종요한점은 드라이버가 구버전입니다

따로 드라이버를 다운받고 지정 할 수 도 있겠지만 행위가 귀찮기 때문에 옵션을 이용해서 해결할려구합니다

OLD_INFORMATION_SCHEMA=TRUE 속송을 추가해줘야합니다 (관련정보링크)

최종 URL은 jdbc:h2:tcp://localhost:9092/mem:testdb;OLD_INFORMATION_SCHEMA=TRUE 입니다

  1. IED 제일 우측에 "DataBase" 탭이 클릭한 후 + 버튼을 눌러 H2DB를 선택해줍니다

  1. 연결 타입을 URL only로 변경하고 URL 정보와 계정 정보를 입력하고 Test Connection를 클릭합니다

  2. 작동확인
    테이블 정보도 잘보이고 시퀀시 정보 잘 보이는군요

    자동완성 또한 잘됩니다

Dbeaver

Dbeaver는 기본적으로 드라이버를 받아야합니다 현재 H2DB에 맞게 드라이버를 받겠습니다

  1. Database Navigator 탭 안에서 우클릭 후 Create > Connection를 클릭합니다

  1. All 클릭후 H2 검색하여 H2 Server 선택 후 다음을 눌러줍니다

  2. General에 Connect by URL 변경 후 URL정보와 계정정보를 입력 후 Test Connection를 클릭

  3. 현재 사용중인 H2 버전을 확인하고 Vesrion을 눌러 사용하고 있는 버전을 선택 후 Download를 클릭합니다

ps) Spring에서 현재 사용중인 버전 확인법
IDE 프로젝트 탭에 External Libraries에서 확인이 가능합니다

  1. 다운로드 된 버전을 확인하고 확인 누름다음 이전 창에서 확인 을 눌러줍니다

  2. 작동확인
    최초 접속시 살짝 느리기 때문에 당황하지 마시고 기다리고 테이블을 눌러 데이블 목록이 잘 불러왔는지 확인합니다

자동완성 잘되고 테이블정보 잘 보여줍니다

Outtro

Spring project에서 H2DB 사용법과 DataBase Tool에 Connection 까지 하는 법을 알아봤습니다

글재주가 없어 열심히 했지만 이해 안되는 부분과 추상적이게 설명한 부분도 있을것 같습니다

연습하여 더 잘 글을 쓸 수 있도록 하겠습니다

profile
장래희망 코딩전사

0개의 댓글