Do Something

Spring 3.X.X버전에서 h2실습하면서 테이블 자동으로 생성하기[macOS] 본문

Spring

Spring 3.X.X버전에서 h2실습하면서 테이블 자동으로 생성하기[macOS]

뭐라도해야겠다 2023. 7. 7. 21:30

스프링 3.1.1버전부터는 H2 1.몇이였더라... 암튼 자동으로 테이블 생성하고 연결되는게 안된다고 한다. 

그렇다고 해서 스프링 2점대를 쓰기는 싫어서리.... 없는 문제도 만들어서 해결해보려고 한다. 

 

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

 

h2버전은 2.1.214를 사용한다. 

 

1. 우선 h2는 깔았으니까 h2.sh를 실행해서 서버를 켜준다. 

2. Generic H2 (server)를 사용해서 우선 디비를 하나 생성해준다. 

3. local/~/test로 만들면 test.db가 생성되는데, 이 디비를 원하는 이름으로 바꾸고 원하는 경로로 바꾼다. 

요론느낌

 

디비생성을 하고, 원하는 경로에 두었다. 이제부터 접근할때는 tcp로 접근해야 한다. 

jdbc:h2:tcp://localhost/~/ + 내가 지정한 경로 로 접근한다. 

 

이제 application.yml을 설정해서 h2에 접근하고 테이블이 없다면 생성해주면 된다. 

spring:
  application:
    name: user-service
  h2:
    console:
      enable: true
      settings:
        web-allow-others: true
      path: /h2-console
  datasource:
    driver-class-name: org.h2.Driver
    url: jdbc:h2:tcp://localhost/~/inflearn/MSA/Ecommerce/eureka
    username: sa
    password:
  jpa:
    hibernate:
      ddl-auto: create-drop

다른건 다 그렇다 치고 url을 내가 바꾼 위치로 넣어준다. 

tcp로 연결해야함을 유의하자

 

jpa: hibernate: ddl-auto를 create-drop으로 해서 없다면 생성해주자

서버를 실행만 시켜줘도 테이블이 만들어지는걸 확인할 수 있다. 

 

완료!