database
h2 database
keepgoing
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이 앞에 붙어있어야 정상적으로 작동됨.