코린과 함께 스프링 모네 - 8. 리포지토리 레이어 - 보충:H2 Database
5638 단어 spring-booth2spring자바Kotlin
개요 / 설명
코토리와 함께 스프링 모네 - 8. 리포지토리 레이어에서는 리포지토리 계층을 제공하여 데이터 지속성 처리를 추상화하여 외부 지속성 영역에 대한 작업을 투명하게 수행할 수 있습니다.
이 경우 외부 영속 영역은 메모리 내에서 응용 프로그램에 내장되어 작동하는 H2 Database Engine을 사용했습니다.
이 H2 Database Engine에는 데이터베이스 정보를 확인하는 콘솔 응용 프로그램이 내장되어 있습니다. 그곳을 이용하여 데이터베이스의 상태 확인을 해 봅니다.
전제 / 환경
런타임 버전
Spring Dependencies
개발 환경
절차 / 설명
application.yml 설정
SpringBoot의 application.yml에 다음과 같이 H2 데이터베이스를 사용할 수 있도록 구성 정보를 정의합니다.
데이터 소스
Spring 애플리케이션에서 데이터베이스에 연결하기 위한 데이터 소스 정의를 다음과 같이 수행한다.
spring:
datasource:
driver-class-name: org.h2.Driver
url: jdbc:h2:mem:app;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=TRUE
username: guest
password: guest
구성요소
내용
driver-class-name
H2DB 드라이버 라이브러리
org.h2.Driver
url
데이터베이스 접속 URL (※ 포맷에 대해서 후술)
jdbc:h2:mem:app;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=TRUE
username
데이터베이스 연결 사용자 이름
password
데이터베이스 연결 암호
H2 데이터베이스 연결 URL 형식
H2데이터베이스는, 인메모리로 동작하는 어플리케이션 임베디드형의 사용이나, 리모트 서버로서 가동하는 서버 모드, 또 파일 시스템에 데이터를 기입하는 동작 등 다양한 동작 모드를 취할 수 있습니다. 각각의 동작 모드에 맞춘 접속 URL 포맷이 됩니다.
작동 모드
URL 형식
샘플
임베디드 모드: 인메모리(프라이빗)
jdbc:h2:mem:
jdbc:h2:mem:임베디드 모드: 인메모리(Named)
jdbc:h2:mem:<DB名>
jdbc:h2:mem:app내장 모드: 로컬 파일
jdbc:h2:[file:][<ファイルパス>]<DB名>
jdbc:h2:file:/data/sample인메모리 DB의 드롭 방지
DB_CLOSE_DELAY=-1
jdbc:h2:mem:app;DB_CLOSE_DELAY=-1
서버 모드: TCP 연결
jdbc:h2:tcp://<서버 주소>[:<포트>]/[<파일 경로>]
jdbc:h2:tcp://localhost:8084/data/sample
서버 모드: TLS 연결
jdbc:h2:ssl://<서버 주소>[:<포트>]/[<파일 경로>]
jdbc:h2:ssl://localhost/mem:test
VM 종료시 DB 연결 끊기
DB_CLOSE_ON_EXIT=TRUE
jdbc:h2:mem:app;DB_CLOSE_ON_EXIT=TRUE
H2 데이터베이스
H2 데이터베이스의 콘솔 화면을 표시하려면 다음을 설정합니다.
spring:
h2:
console:
enabled: true
H2 데이터베이스의 콘솔 화면 표시
응용 프로그램을 시작한 후 H2 데이터베이스 콘솔 화면에 액세스해보십시오.
$ ./gradlew bootRun
> Task :bootRun
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v2.1.1.RELEASE)
:
:
:
2019-02-26 16:05:13.358 INFO 7073 --- [ main] o.s.b.a.e.web.EndpointLinksResolver : Exposing 15 endpoint(s) beneath base path '/admin'
2019-02-26 16:05:13.457 INFO 7073 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8080 (http) with context path ''
2019-02-26 16:05:13.460 INFO 7073 --- [ main] i.p.s.simple.SimpleApplicationKt : Started SimpleApplicationKt in 5.577 seconds (JVM running for 5.998)
<==========---> 83% EXECUTING [2m 46s]
> :bootRun
http://localhost:[設定したポート番号]/h2-console
로 이동하여 H2 데이터베이스 연결 사용자/암호를 입력하여 연결합니다. 요약 / 되돌아보기
SpringBoot와 함께 손쉽게 사용할 수 있는 H2 데이터베이스를 조작해 보았습니다.
데이터베이스의 기능 자체에 의존하지 않는 어플리케이션 개발의 장면에서는, 인스톨 작업이 불필요하고, 간단하게 사용할 수 있는 H2 데이타베이스는 이용할 수 있는 장면이 여러 가지 있는 것은 아닐까요.
이번 소스
Reference
이 문제에 관하여(코린과 함께 스프링 모네 - 8. 리포지토리 레이어 - 보충:H2 Database), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/shinyay/items/8a66a04bfa1de4a97ea3텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)