H2 Database
Java로 작성된 관계형 데이터베이스 관리 시스템으로 용량이 가볍다. Spring boot가 지원하는 In-memory 관계형 DB로 로컬 환경이나 테스트 환경에서 많이 쓰인다.
1. dependency 추가
dependencies {
runtimeOnly 'com.h2database:h2'
}
2. H2 Database Engine 설치
3. 압축 해제 후 bin 파일에서 실행
- Window의 경우 h2.bat, Mac OS의 경우 h2.sh 를 실행하면 된다.
- powerShell에서 cd h2, cd bin, .\h2.bat으로 실행
4. H2 Databae 생성하기
- database 명명 규칙에 따라 JDBC URL에
til_server
라고 작성하고 비밀번호는 따로 설정하지 않았다.
- 연결 시험을 누르고 시험 성공 안내가 나오면 연결 버튼 클릭
- 실제 로컬의 h2 경로에 가보면
til_server.mv.db
가 생성되어 있다. 정상 작동 완료 되었다는 뜻.
5. TCP 모드로 서버 접속
- 데이터베이스 파일을 생성한 후 TCP 소켓을 통해 접속해야 어플리ㅔ이션과 코솔을 동시에 접근했을 때 오류가 발생하지 않음.
- 좌측 상단 빨간 버튼을 누르면 다시 생성 화면으로 되돌아가는데, 다음과 같이 바꾼다.
- Embedded → Server, JDBC URL과 사용자명은 4번에서 했던 대로 다시 설정
- 연결 시험 후 성공 시 연결 버튼 클릭
6. Intellij에서 DB 연결
- src > main > resources > application.properties 파일에 다음과 같은 정보를 추가한다.
- In-memory mode로 설정.
- ddl-auto는 DB 초기화 전략을 의미. (none, create, create-drop, update, validate), 여기서 설정한 create는 Entity 클래스를 대상으로 DDL 쿼리의 실행 여부와 실행되는 쿼리를 CREATE로 설정한 것. 실행 시 기존 테이블을 삭제한 후 테이블을 재생성한다.
spring.application.name=TodayILearnServer
spring.config.activate.on-profile=local
spring.datasource.driver-class-name=org.h2.Driver
spring.datasource.url=jdbc:h2:tcp://localhost/~/til_server
spring.datasource.username=jieun
spring.datasource.password=
spring.jpa.show-sql=true
spring.jpa.hibernate.ddl-auto=create
spring.jpa.properties.hibernate.format_sql=true
spring.jpa.properties.hibernate.show_sql=true
참고자료
데이터베이스 명명 규칙
스프링 부트(Spring Boot) - 5분 안에 H2 Database와 JPA 연동해보기