h2 database 사용법 springboot +

로컬이나 remote에 설치된 RDB가 없는 경우 간단한 것이 h2DB를 springboot으로 내장 실행할 수 있습니다.여기서 내장과 별도로 h2를 설치할 필요 없이 pom.xml나 build.gradle에 의존성을 추가하기만 하면 springboot 실행 시 h2를 함께 구동시키는 것을 말합니다. 내장 tomcat이 springboot 구동 시 함께 구동하는 것과 같은 의미입니다.

build.gradle에 아래와 같이 추가합니다. springboot에서 h2에 대한 버전을 관리하기 때문에 버전을 명시하지 않으면 springboot 버전에 맞는 적당한 버전으로 설정됩니다.

Application.yml에 h2관련 설정을 해보겠습니다.아래에 각 항목별로 주석을 달았으니 자세한 내용은 주석을 참조하시기 바랍니다.spring.data source.hikari 바로 다음에 username 등을 썼는데, 이것이 아니라 spring.data source 바로 다음에 username 등을 쓰셔도 됩니다. springboot 기본 커넥션 풀이 hikari인데, 위 둘 다 hikari가 동작합니다.

mysql, oracle 등에 접속할 때는 dbeaver나 workbench 등의 클라이언트 프로그램을 이용하여 접속합니다.이것도 귀찮을 수 있기 때문에 springboot으로 접속 클라이언트도 제공해 줍니다. 그게 console입니다.위와 같이 true로 설정하고 path에는 /testdb라고 적었는데, 이 경우,

아래와 같이 크롬 브라우저에서 DB로의 접속이 가능합니다.username과 password에는 yml에 적은 값을 넣어야 로그인이 가능합니다.

위의 Connect 버튼을 누르면 아래와 같이 접속이 완료되어 테이블 리스트가 나타나며, 테이블명을 클릭하면 우측에 자동으로 SELECT * FROMORDERS와 같이 기본 조회 퀄리가 나타나 조회가 가능합니다.

다시 yml 설정으로 돌아가서

url:jdbc:h2:mem:testdb <–이렇게 쓰면 메모리에 DB 데이터가 저장됩니다. 메모리이므로 springboot이 종료되면 모든 데이터는 함께 사라집니다.

url:jdbc:h2:file:~/testdb <–이렇게 쓰면 home 디렉토리(~/)에 testdb라고 하는 파일이 생기고 거기에 DB 데이터가 저장됩니다. 파일에 저장되므로 springboot이 종료되어도 데이터는 저장됩니다.

저는 Windows에서 테스트하고 있기 때문에 아래와 같은 폴더에 testdb.mv.db와 testdb.trace.db라는 파일이 생성되어 있습니다.C: Users [로그인 계정]

아주 간단하게 RDB 서버와 클라이언트를 springboot 구동 시 한 방에 처리했습니다. 한방에 다 해주니까 편하지만 당연히 성능은 좋지 않겠죠? 따라서 통상 로컬 개발 환경에서만 사용하고 실제 운영 환경에서는 oracle, mysql 등을 별도 서버에 설치하고 거기에 접속해야 합니다.

마지막으로 h2를 직접 PC에 설치하셔도 됩니다. 이 경우 springboot 구동+h2 프로그램 구동을 해야 정상 테스트가 가능합니다.

도움이 되었으면 좋겠습니다:)

error: Content is protected !!