Hvor gemmer H2s integrerede database dataene?

1. Introduktion

I denne artikel lærer vi, hvordan du konfigurerer Spring Boot-applikationen til at bruge den integrerede H2-database og derefter se, hvor H2s integrerede database gemmer dataene.

H2-database er en letvægts- og open source-database uden kommerciel support på dette tidspunkt. Vi kan bruge det i forskellige tilstande:

  • servertilstand - til fjernforbindelser ved hjælp af JDBC eller ODBC via TCP / IP
  • integreret tilstand - til lokale forbindelser, der bruger JDBC
  • blandet tilstand - det betyder, at vi kan bruge H2 til både lokale og eksterne forbindelser

H2 kan konfigureres til at køre som en hukommelsesdatabase, men det kan også være vedvarende, f.eks. Vil dets data blive gemt på disken. Med henblik på denne tutorial, Vi arbejder med H2-databasen i indlejret tilstand med aktiveret vedholdenhed, så vi har data på disken.

2. Indbygget H2-database

Hvis vi vil bruge H2-databasen, skal vi tilføje h2 og spring-boot-starter-data-jpa Maven afhængigheder til vores pom.xml fil:

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

3. H2's Embedded Persistence Mode

Vi nævnte allerede, at H2 kunne bruge et filsystem til at gemme databasedata. Den største fordel ved denne tilgang sammenlignet med den i hukommelsen er, at databasedata ikke går tabt, når applikationen genstarter.

Vi er i stand til at konfigurere lagringstilstand gennem spring.datasource.url ejendom i vores application.properties fil. På denne måde er vi i stand til at indstille H2-databasen til at bruge in-memory-tilgangen ved at tilføje mem parameter i datakildens URL, efterfulgt af databasenavn:

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

Hvis vi bruger den filbaserede persistenstilstand, indstiller vi en af ​​de tilgængelige muligheder for diskplaceringer i stedet for mem parameter. I det næste afsnit vil vi diskutere, hvad disse muligheder er.

Lad os se, hvilke filer H2-databasen opretter:

  • demodb.mv.db - i modsætning til de andre oprettes denne fil altid, og den indeholder data, transaktionslog og indekser
  • demodb.lock.db - det er en databaselåsfil, og H2 genskaber den, når databasen er i brug
  • demodb.trace.db - denne fil indeholder sporingsoplysninger
  • demodb.123.temp.db - bruges til håndtering af klatter eller store resultatsæt
  • demodb.newFile - H2 bruger denne fil til komprimering af databasen, og den indeholder en ny databaselagringsfil
  • demodb.oldFile - H2 bruger også denne fil til databasekomprimering, og den indeholder gammel databaselagringsfil

4. H2's Embedded Database Storage Location

H2 er meget fleksibel med hensyn til lagring af databasefiler. I øjeblikket kan vi konfigurere dets opbevaringsmappe til:

  • bibliotek på disk
  • aktuelle brugerkatalog
  • aktuelle projektmappe eller arbejdskatalog

4.1. Katalog på disk

Vi kan indstille en bestemt mappeplacering, hvor vores databasefiler gemmes:

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

Bemærk, at i denne forbindelsesstreng, det sidste stykke refererer til databasenavnet. Selvom vi savner filnøgleordet i denne datakildeforbindelses-URL, administrerer H2 det og opretter filer på den angivne placering.

4.2. Nuværende brugerkatalog

Hvis vi vil gemme databasefiler i den aktuelle brugerkatalog, bruger vi datakildens URL, der indeholder en tilde (~) efter fil nøgleord:

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

For eksempel i Windows-systemer vil denne mappe være C: / Brugere /.

Sådan gemmes databasefiler i underkataloget til det aktuelle brugerkatalog:

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

Læg mærke til det hvis underkatalogen ikke findes, oprettes den automatisk.

4.3. Nuværende arbejdsmappe

Den aktuelle arbejdsmappe er en, hvor applikationen startes, og den henvises til som en prik (.) I datakildens URL. Hvis vi vil have databasefiler der, konfigurerer vi det som følger:

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

Sådan gemmes databasefiler i underkatalogen til det aktuelle arbejdsmappe:

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

Bemærk, at hvis underkatalogen ikke findes, oprettes den automatisk.

5. Konklusion

I denne korte vejledning diskuterede vi nogle aspekter af H2-databasen og viste, hvor H2s integrerede database lagrer dataene. Vi lærte også, hvordan vi konfigurerer placeringen af ​​databasefilerne.

Den komplette kodeeksempel er tilgængelig på GitHub.


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