Hol tárolja az adatokat a H2 beágyazott adatbázisa?

1. Bemutatkozás

Ebben a cikkben megtudhatjuk, hogyan kell beállítani a Spring Boot alkalmazást a beágyazott H2 adatbázis használatára, majd megtudhatjuk, hogy a H2 beágyazott adatbázisa hol tárolja az adatokat.

A H2 adatbázis egy könnyű és nyílt forráskódú adatbázis, amelyen jelenleg nincs kereskedelmi támogatás. Különböző módokban használhatjuk:

  • szerver mód - távoli kapcsolatokhoz JDBC vagy ODBC használatával TCP / IP-n keresztül
  • beágyazott mód - a JDBC-t használó helyi kapcsolatokhoz
  • vegyes mód - ez azt jelenti, hogy a H2-t használhatjuk helyi és távoli kapcsolatokhoz egyaránt

A H2 konfigurálható úgy, hogy memóriában lévő adatbázisként működjön, de tartós is lehet, például az adatait a lemezen tároljuk. A bemutató alkalmazásában: a H2 adatbázissal beágyazott módban fogunk dolgozni, engedélyezett perzisztenciával, így adatok lesznek a lemezen.

2. Beágyazott H2 adatbázis

Ha a H2 adatbázist akarjuk használni, hozzá kell adnunk a h2 és spring-boot-starter-data-jpa Maven függőségek a mi pom.xml fájl:

 com.h2database h2 1.4.200 runtime org.springframework.boot spring-boot-starter-data-jpa 2.3.4.KÖZLEMÉNY 

3. A H2 beágyazott perzisztencia üzemmódja

Már említettük, hogy a H2 fájlrendszert használhat adatbázis-adatok tárolására. Ennek a megközelítésnek a legnagyobb előnye a memóriában lévőkhöz képest az, hogy az adatbázis újraindítása után nem vesznek el az adatok.

A tároló módot a spring.datasource.url ingatlan a mi alkalmazás.tulajdonságok fájl. Így beállíthatjuk a H2 adatbázist az in-memory megközelítés használatára a mem paraméter az adatforrás URL-jében, amelyet az adatbázis neve követ:

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

Ha a fájl alapú perzisztencia módot használjuk, akkor a lemez helyeihez az egyik opciót állítjuk be a mem paraméter. A következő részben megvitatjuk, hogy mik ezek a lehetőségek.

Nézzük meg, mely fájlokat hozza létre a H2 adatbázis:

  • demodb.mv.db - a többiektől eltérően, ez a fájl mindig létrejön, és adatokat, tranzakciós naplót és indexeket tartalmaz
  • demodb.lock.db - ez egy adatbázis-zárfájl, és a H2 újra létrehozza, amikor az adatbázis használatban van
  • demodb.nyom.db - ez a fájl nyomkövetési információkat tartalmaz
  • demodb.123.temp.db - foltok vagy hatalmas eredménykészletek kezelésére használják
  • demodb.newFile - A H2 ezt a fájlt használja az adatbázis-tömörítéshez, és egy új adatbázis-tároló fájlt tartalmaz
  • demodb.oldFile - A H2 ezt a fájlt az adatbázis tömörítéséhez is használja, és régi adatbázis-tároló fájlt tartalmaz

4. A H2 beágyazott adatbázis-tárolási helye

A H2 nagyon rugalmas az adatbázis-fájlok tárolásával kapcsolatban. Ebben a pillanatban konfigurálhatjuk a tárolási könyvtárát:

  • könyvtár a lemezen
  • az aktuális felhasználói könyvtár
  • aktuális projektkönyvtár vagy munkakönyvtár

4.1. Könyvtár a lemezen

Beállíthatunk egy meghatározott könyvtárhelyet, ahol az adatbázisfájljaink tárolódnak:

spring.datasource.url = jdbc: h2: fájl: C: / data / demodb

Vegye figyelembe, hogy ebben a kapcsolati karakterláncban az utolsó darab az adatbázis nevére utal. Továbbá, még abban az esetben is, ha hiányzik a fájl kulcsszó ebben az adatforrás kapcsolati URL-ben, a H2 kezeli és fájlokat hoz létre a megadott helyen.

4.2. Jelenlegi felhasználói könyvtár

Abban az esetben, ha adatbázisfájlokat akarunk tárolni az aktuális felhasználói könyvtárban, akkor az adatforrás URL-jét fogjuk használni, amely tildét tartalmaz (~) azután fájl kulcsszó:

spring.datasource.url = jdbc: h2: fájl: ~ / demodb

Például Windows rendszerekben ez a könyvtár lesz C: / Felhasználók /.

Adatbázisfájlok tárolása az aktuális felhasználói könyvtár alkönyvtárában:

spring.datasource.url = jdbc: h2: fájl: ~ / alkönyvtár / demodb

Figyelje meg ha az alkönyvtár nem létezik, automatikusan létrejön.

4.3. Jelenlegi munkakönyvtár

A jelenlegi munkakönyvtár az, ahol az alkalmazás elindul, és pontként (.) Hivatkozik rá az adatforrás URL-jében. Ha adatbázis-fájlokat akarunk oda, akkor a következőképpen konfiguráljuk:

spring.datasource.url = jdbc: h2: fájl: ./ demodb

Adatbázisfájlok tárolása az aktuális munkakönyvtár alkönyvtárában:

spring.datasource.url = jdbc: h2: fájl: .//alkönyvtár / demodb

Figyelje meg, hogy ha az alkönyvtár nem létezik, akkor az automatikusan létrejön.

5. Következtetés

Ebben a rövid bemutatóban megvitattuk a H2 adatbázis néhány aspektusát, és megmutattuk, hogy a H2 beágyazott adatbázisa hol tárolja az adatokat. Megtanultuk az adatbázis fájlok helyének konfigurálását is.

A teljes kódminta elérhető a GitHubon.