Kde ukladá dáta zabudovaná databáza H2?
1. Úvod
V tomto článku sa dozvieme, ako nakonfigurovať aplikáciu Spring Boot na použitie vloženej databázy H2, a potom uvidíme, kam vložená databáza H2 ukladá údaje.
Databáza H2 je ľahká a open-source databáza, ktorá v súčasnosti nemá komerčnú podporu. Môžeme ho použiť v rôznych režimoch:
- režim servera - pre vzdialené pripojenia pomocou JDBC alebo ODBC cez TCP / IP
- zabudovaný režim - pre miestne pripojenia, ktoré používajú JDBC
- zmiešaný režim - to znamená, že môžeme použiť H2 pre miestne aj vzdialené pripojenie
H2 je možné nakonfigurovať tak, aby fungovalo ako databáza v pamäti, ale môže byť aj trvalé, napr. Jeho údaje budú uložené na disku. Na účely tohto tutoriálu budeme pracovať s databázou H2 vo vloženom režime s povolenou perzistenciou, aby sme mali údaje na disku.
2. Vstavaná databáza H2
Ak chceme používať databázu H2, budeme musieť pridať h2 a spring-boot-starter-data-jpa Závislosti závislé od našej pom.xml spis:
com.h2database h2 1.4.200 runtime org.springframework.boot spring-boot-starter-data-jpa 2.3.4.RELEASE
3. Režim zabudovanej perzistencie H2
Už sme spomenuli, že H2 mohol na ukladanie údajov databázy používať súborový systém. Najväčšou výhodou tohto prístupu v porovnaní s prístupom v pamäti je, že po reštartovaní aplikácie sa údaje databázy nestratia.
Sme schopní nakonfigurovať režim ukladania cez spring.datasource.url majetok v našom application.properties spis. Týmto spôsobom sme schopní nastaviť databázu H2 tak, aby používala prístup v pamäti, a to pridaním mem parameter v adrese URL zdroja údajov, za ktorým nasleduje názov databázy:
spring.datasource.url = jdbc: h2: mem: demodb
Ak použijeme režim trvalosti založený na súboroch, nastavíme namiesto možnosti jednu z dostupných možností pre umiestnenie diskov mem parameter. V nasledujúcej časti si povieme, čo sú tieto možnosti.
Pozrime sa, ktoré súbory vytvára databáza H2:
- demodb.mv.db - na rozdiel od ostatných je tento súbor vždy vytvorený a obsahuje údaje, protokol transakcií a indexy
- demodb.lock.db - je to súbor uzamknutia databázy a H2 ho znovu vytvorí, keď sa databáza používa
- demodb.trace.db - tento súbor obsahuje informácie o stope
- demodb.123.temp.db - používa sa na manipuláciu s guľkami alebo s obrovskými výsledkami
- demodb.newFile - H2 používa tento súbor na zhutnenie databázy a obsahuje nový súbor s databázovým úložiskom
- demodb.oldFile - H2 tiež používa tento súbor na zhutnenie databázy a obsahuje starý súbor s databázovým úložiskom
4. Umiestnenie úložiska zabudovanej databázy H2
H2 je veľmi flexibilný, pokiaľ ide o ukladanie databázových súborov. V tejto chvíli môžeme nakonfigurovať jeho úložný adresár na:
- adresár na disku
- aktuálny adresár používateľov
- aktuálny adresár projektu alebo pracovný adresár
4.1. Adresár na disku
Môžeme nastaviť konkrétne umiestnenie adresára, kde budú uložené naše databázové súbory:
spring.datasource.url = jdbc: h2: file: C: / data / demodb
Všimnite si, že v tomto pripojovacom reťazci posledný blok odkazuje na názov databázy. Aj keď nám v tejto adrese URL pripojenia zdroja údajov chýba kľúčové slovo súboru, H2 ho spravuje a vytvorí súbory na zadanom mieste.
4.2. Aktuálny adresár používateľov
V prípade, že chceme ukladať databázové súbory do aktuálneho adresára používateľov, použijeme adresu URL zdroja údajov, ktorá obsahuje vlnovku (~) po spis kľúčové slovo:
spring.datasource.url = jdbc: h2: file: ~ / demodb
Napríklad v systémoch Windows bude tento adresár C: / Používatelia /.
Ak chcete uložiť databázové súbory do podadresára aktuálneho adresára používateľov:
spring.datasource.url = jdbc: h2: file: ~ / podadresár / demodb
Všimni si ak podadresár neexistuje, vytvorí sa automaticky.
4.3. Aktuálny pracovný adresár
Aktuálny pracovný adresár je taký, v ktorom je spustená aplikácia. V adrese URL zdroja údajov sa na ňu odkazuje ako bodka (.). Ak tam chceme databázové súbory, nakonfigurujeme ich nasledovne:
spring.datasource.url = jdbc: h2: file: ./ demodb
Ak chcete uložiť databázové súbory do podadresára aktuálneho pracovného adresára:
spring.datasource.url = jdbc: h2: file: ./ podadresar / demodb
Všimnite si, že ak podadresár neexistuje, vytvorí sa automaticky.
5. Záver
V tomto krátkom tutoriáli sme diskutovali o niektorých aspektoch databázy H2 a ukázali sme, kam má zabudovaná databáza H2 dáta. Naučili sme sa tiež, ako konfigurovať umiestnenie databázových súborov.
Kompletná ukážka kódu je k dispozícii na GitHub.