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.