Gdje pohranjuje ugrađene baze podataka H2?
1. Uvod
U ovom ćemo članku naučiti kako konfigurirati aplikaciju Spring Boot za upotrebu ugrađene H2 baze podataka, a zatim ćemo vidjeti gdje H2 ugrađena baza podataka pohranjuje podatke.
Baza podataka H2 lagana je baza podataka otvorenog koda koja trenutno nema komercijalnu podršku. Možemo ga koristiti u raznim načinima:
- način poslužitelja - za udaljene veze pomoću JDBC ili ODBC preko TCP / IP
- ugrađeni način rada - za lokalne veze koje koriste JDBC
- mješoviti način rada - to znači da H2 možemo koristiti i za lokalne i za udaljene veze
H2 se može konfigurirati za pokretanje kao baza podataka u memoriji, ali može biti i postojana, npr. Njegovi će se podaci pohraniti na disk. U svrhu ovog vodiča, radit ćemo s H2 bazom podataka u ugrađenom načinu s omogućenim postojanjem, tako da ćemo podatke imati na disku.
2. Ugrađena baza podataka H2
Ako želimo koristiti H2 bazu podataka, morat ćemo dodati h2 i spring-boot-starter-data-jpa Maven ovisnosti o našim pom.xml datoteka:
com.h2database h2 1.4.200 runtime org.springframework.boot spring-boot-starter-data-jpa 2.3.4.Opusti
3. Ugrađeni način postojanosti H2
Već smo spomenuli da bi H2 mogao koristiti datotečni sustav za pohranu podataka iz baze podataka. Najveća prednost ovog pristupa u usporedbi s onim u memoriji je što se podaci baze podataka ne gube nakon ponovnog pokretanja aplikacije.
U mogućnosti smo konfigurirati način pohrane putem proljeće.dataizvor.url vlasništvo u našem primjena.svojstva datoteka. Na taj način možemo dodati H2 bazu podataka da koristi pristup u memoriji dodavanjem mem parametar u URL-u izvora podataka, nakon čega slijedi naziv baze podataka:
opruga.datasource.url = jdbc: h2: mem: demodb
Ako koristimo način trajanja na temelju datoteka, postavit ćemo jednu od dostupnih opcija za mjesta na disku umjesto mem parametar. U sljedećem odjeljku razmotrit ćemo koje su to mogućnosti.
Pogledajmo koje datoteke H2 baza podataka stvara:
- demodb.mv.db - za razliku od ostalih, ova se datoteka uvijek kreira i sadrži podatke, dnevnik transakcija i indekse
- demodb.lock.db - to je datoteka zaključavanja baze podataka i H2 je ponovno kreira kad je baza podataka u uporabi
- demodb.trace.db - ova datoteka sadrži podatke o tragovima
- demodb.123.temp.db - koristi se za rukovanje mrljama ili ogromnim skupovima rezultata
- demodb.newFile - H2 koristi ovu datoteku za zbijanje baze podataka i sadrži novu datoteku spremišta baze podataka
- demodb.oldFile - H2 također koristi ovu datoteku za zbijanje baze podataka i sadrži staru datoteku spremišta baze podataka
4. Mjesto pohrane ugrađene baze podataka H2
H2 je vrlo fleksibilan u pogledu pohrane datoteka baza podataka. Trenutno njegov direktorij za pohranu možemo konfigurirati na:
- direktorij na disku
- trenutni direktorij korisnika
- trenutni direktorij projekta ili radni direktorij
4.1. Direktorij na disku
Možemo postaviti određeno mjesto direktorija na kojem će se čuvati datoteke baze podataka:
spring.datasource.url = jdbc: h2: datoteka: C: / data / demodb
Primijetite da u ovom nizu veze, posljednji dio odnosi se na ime baze podataka. Također, čak i ako propustimo ključnu riječ datoteke u ovom URL-u veze s izvorom podataka, H2 će njome upravljati i stvarati datoteke na navedenom mjestu.
4.2. Trenutni korisnički imenik
U slučaju da želimo pohraniti datoteke baze podataka u trenutni direktorij korisnika, upotrijebit ćemo URL izvora podataka koji sadrži tildu (~) nakon što datoteka ključna riječ:
opruga.datasource.url = jdbc: h2: datoteka: ~ / demodb
Na primjer, u Windows sustavima ovaj će direktorij biti C: / Korisnici /.
Da biste pohranili datoteke baze podataka u poddirektorij trenutnog korisničkog direktorija:
spring.datasource.url = jdbc: h2: datoteka: ~ / poddirektorij / demodb
Primijeti da ako poddirektorij ne postoji, automatski će se stvoriti.
4.3. Trenutni radni direktorij
Trenutni radni direktorij je onaj u kojem se aplikacija pokreće i na njega se navodi točka (.) U URL-u izvora podataka. Ako tamo želimo datoteke baze podataka, konfigurirat ćemo ih na sljedeći način:
opruga.datasource.url = jdbc: h2: datoteka: ./ demodb
Da biste pohranili datoteke baze podataka u poddirektorij trenutnog radnog direktorija:
spring.datasource.url = jdbc: h2: datoteka: ./ poddirektorij / demodb
Primijetite da ako poddirektorij ne postoji, automatski će se stvoriti.
5. Zaključak
U ovom kratkom vodiču razgovarali smo o nekim aspektima baze podataka H2 i pokazali gdje ugrađena baza podataka H2 pohranjuje podatke. Također smo naučili kako konfigurirati mjesto datoteka baze podataka.
Cjelovit uzorak koda dostupan je na GitHubu.