ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • h2 database
    database 2023. 1. 30. 13:54

    데이터베이스 없이 웹어플리케이션을 만들게 되면 메모리 상에 데이터가 저장되기 때문에 서버를 재시작하면 데이터가 소실되어버린다. 여러 데이터베이스가 존재하지만 테스트용으로 사용하기 좋은 h2 database를 사용한다.

    //application.yml
    spring:
      h2:
        console:
          enabled: true
          path: /h2-console
    

    application.yml 파일에 위 명령어를 입력하고 어플리케이션을 재시작하면 콘솔에

    H2 console available at '/h2-console'. Database available at 'jdbc:h2:mem:15e8f5cf-ff6c-4501-8539-5e4ec3a2a12a'
    

    라는 결과가 출력된다. 여기서 ‘jdbc:h2:mem:…’으로 출력된 부분은 어플리케이션을 재시작할 때마다 새로운 주소로 갱신된다. 이를 방지하기 위해

    spring:
      h2:
        console:
          enabled: true
          path: /h2-console
    
      datasource:
        url: jdbc:h2:mem:kimsungsu
        username: sa
        password:
        driver-class-name: org.h2.Driver
    

    위와 같이 기존의 소스에서 datasource 아래의 명령문을 추가해주면 된다. 이렇게 되면 어플리케이션을 재시작 해도 url이 변경되지 않는다.

    H2 console available at '/h2-console'. Database available at 'jdbc:h2:mem:kimsungsu'
    

    에러 사항 발생

    h2 database에서 애플리케이션 엔티티 클래스를 테이블로 만들어주지 못하는 상황 발생,

    원인 : localhost url이 잘못 설정되어 있었음

    에러 url : <http://172.30.1.14:8082/login.jsp?jsessionid=b49ef5c550e1f30aa3fd5598769722b1>
    해결한 url : <http://localhost:8080/h2-console/login.jsp?jsessionid=1e623b87c7a9df7a51150dbc2b2c0a5d>
    해결한 방법 : 전에 김영한 강사 강의 보다가 url을 변경해줬어야 했던게 기억이 나서 적용해보니 바로 해결됨 ㅎㅎ
    

    h2-console을 실행하고 그 위에 url을 localhost:8080/h2-console이 앞에 붙어있어야 정상적으로 작동됨.

     

    'database' 카테고리의 다른 글

    [SQL] WHERE과 HAVING의 차이  (0) 2023.04.14
    [SQL] DISTINCT와 GROUP BY 차이  (0) 2023.04.14
    NoSQL과 SQL 차이  (0) 2023.01.30
    릴레이션(테이블)와 entity 차이  (0) 2023.01.30
    Entity  (0) 2023.01.30
Designed by Tistory.