Hvor lagrer H2’s Embedded Database dataene?

1. Introduksjon

I denne artikkelen lærer vi hvordan du konfigurerer Spring Boot-applikasjonen til å bruke den innebygde H2-databasen og deretter se hvor H2s innebygde database lagrer dataene.

H2-database er en lett og åpen kildekode-database uten kommersiell støtte på dette tidspunktet. Vi kan bruke den i forskjellige moduser:

  • servermodus - for eksterne tilkoblinger ved bruk av JDBC eller ODBC over TCP / IP
  • innebygd modus - for lokale tilkoblinger som bruker JDBC
  • blandet modus - dette betyr at vi kan bruke H2 for både lokale og eksterne tilkoblinger

H2 kan konfigureres til å kjøre som en database i minnet, men det kan også være vedvarende, for eksempel blir dataene lagret på disken. For formålet med denne veiledningen, Vi jobber med H2-databasen i innebygd modus med aktivert utholdenhet, så vi har data på disken.

2. Innebygd H2-database

Hvis vi vil bruke H2-databasen, må vi legge til h2 og spring-boot-starter-data-jpa Maven avhengigheter til vår pom.xml fil:

 com.h2database h2 1.4.200 runtime org.springframework.boot spring-boot-starter-data-jpa 2.3.4.RELEASE 

3. H2s Embedded Persistence Mode

Vi nevnte allerede at H2 kunne bruke et filsystem til å lagre databasedata. Den største fordelen med denne tilnærmingen sammenlignet med minnet er at databasedata ikke går tapt etter at applikasjonen starter på nytt.

Vi kan konfigurere lagringsmodus gjennom våren.datasource.url eiendom i vår application.properties fil. På denne måten kan vi sette H2-databasen til å bruke tilnærmingen i minnet ved å legge til mem parameter i datakildens URL, etterfulgt av databasenavn:

spring.datasource.url = jdbc: h2: mem: demodb

Hvis vi bruker den filbaserte utholdenhetsmodusen, setter vi et av de tilgjengelige alternativene for diskplasseringer i stedet for mem parameter. I neste avsnitt vil vi diskutere hva disse alternativene er.

La oss se hvilke filer H2-databasen oppretter:

  • demodb.mv.db - i motsetning til de andre, blir denne filen alltid opprettet og den inneholder data, transaksjonslogg og indekser
  • demodb.lock.db - det er en databaselåsfil og H2 gjenskaper den når databasen er i bruk
  • demodb.trace.db - denne filen inneholder sporinformasjon
  • demodb.123.temp.db - brukes til å håndtere klatter eller store resultatsett
  • demodb.newFile - H2 bruker denne filen til komprimering av databaser, og den inneholder en ny databaselagringsfil
  • demodb.oldFile - H2 bruker også denne filen til komprimering av databaser, og den inneholder gammel databaselagringsfil

4. H2s Embedded Database Storage Location

H2 er veldig fleksibel når det gjelder lagring av databasefiler. For øyeblikket kan vi konfigurere lagringskatalogen til:

  • katalog på disk
  • gjeldende brukerkatalog
  • gjeldende prosjektkatalog eller arbeidskatalog

4.1. Katalog på disk

Vi kan angi et bestemt katalogsted der databasefilene våre skal lagres:

spring.datasource.url = jdbc: h2: fil: C: / data / demodb

Legg merke til at i denne tilkoblingsstrengen, den siste delen refererer til databasenavnet. Også, selv om vi savner filnøkkelordet i denne datakildens tilkoblings-URL, vil H2 administrere det og opprette filer på det angitte stedet.

4.2. Nåværende brukerkatalog

Hvis vi vil lagre databasefiler i gjeldende brukerkatalog, bruker vi datakildens URL som inneholder en tilde (~) etter fil nøkkelord:

spring.datasource.url = jdbc: h2: fil: ~ / demodb

For eksempel i Windows-systemer vil denne katalogen være C: / Brukere /.

Slik lagrer du databasefiler i underkatalogen til gjeldende brukerkatalog:

spring.datasource.url = jdbc: h2: fil: ~ / underkatalog / demodb

Legg merke til det Hvis underkatalogen ikke eksisterer, opprettes den automatisk.

4.3. Nåværende arbeidskatalog

Den nåværende arbeidskatalogen er en der applikasjonen startes, og den refereres til som en prikk (.) I datakildens URL. Hvis vi vil ha databasefiler der, konfigurerer vi det slik:

spring.datasource.url = jdbc: h2: file: ./ demodb

Slik lagrer du databasefiler i underkatalogen til gjeldende arbeidskatalog:

spring.datasource.url = jdbc: h2: file: ./ underkatalog / demodb

Legg merke til at hvis underkatalogen ikke eksisterer, vil den opprettes automatisk.

5. Konklusjon

I denne korte opplæringen diskuterte vi noen aspekter av H2-databasen og viste hvor H2s innebygde database lagrer dataene. Vi lærte også hvordan du konfigurerer plasseringen til databasefilene.

Komplett kodeeksempel er tilgjengelig på GitHub.


$config[zx-auto] not found$config[zx-overlay] not found