Tavaszi csomagtartó H2 adatbázissal
1. Áttekintés
Ebben az oktatóanyagban feltárjuk a H2 és a Spring Boot együttes használatát. Csakúgy, mint más adatbázisok, a Spring Boot ökoszisztémában teljes támogatottsága van rá.
2. Függőségek
Kezdjük a h2 és spring-boot-starter-data-jpa függőségek:
org.springframework.boot spring-boot-starter-data-jpa com.h2database h2 futásidejű
3. Adatbázis-konfiguráció
Alapértelmezés szerint a Spring Boot konfigurálja az alkalmazást csatlakozzon egy memóriatárolóhoz a felhasználónévvel sa és egy üres jelszót.
Ezeket a paramétereket azonban megváltoztathatjuk a következő tulajdonságok hozzáadásával a alkalmazás.tulajdonságok fájl:
spring.datasource.url = jdbc: h2: mem: testdb spring.datasource.driverClassName = org.h2.Driver spring.datasource.username = sa spring.datasource.password = jelszó spring.jpa.database-platform = org.hibernate. dialektus.H2Dialect
Tervezés szerint a memóriában lévő adatbázis ingatag, és az adatok újra elvesznek, amikor újraindítjuk az alkalmazást.
A fájl alapú tárolás használatával megváltoztathatjuk ezt a viselkedést. Ehhez frissítenünk kell a spring.datasource.url:
spring.datasource.url = jdbc: h2: fájl: / data / demo
Az adatbázis más módokban is működhet.
4. Adatbázis-műveletek
A CRUD műveletek végrehajtása a H2-vel a Spring Boot-on belül megegyezik a többi SQL-adatbázissal, és a Spring Persistence sorozat oktatóanyagaink jó munkát végeznek ennek lefedésében.
Addig tegyük hozzá a adatok.sql fájl src / main / resources:
CSÖKKENJEN TÁBLÁZATOT, HOGY LÉGZIK milliárdosok; CREATE TABLE milliárdosok (id INT AUTO_INCREMENT PRIMARY KEY, first_name VARCHAR (250) NOT NULL, last_name VARCHAR (250) NOT NULL, karrier VARCHAR (250) DEFAULT NULL); INSERT INTO milliárdosok (keresztnév, vezetéknév, karrier) ÉRTÉKEK ('Aliko', 'Dangote', 'Billionaire Industrialist'), ('Bill', 'Gates', 'Billionaire Tech Entrepreneur'), ('Folrunsho', 'Alakija') , A „milliárdos olajmágnes”);
A Spring Boot automatikusan felveszi a adatok.sql és futtassa a konfigurált H2 adatbázisunkkal az alkalmazás indításakor. Ez egy jó módja annak, hogy tesztelés céljából vagy más célokra beágyazhassa az adatbázist.
5. Hozzáférés a H2 konzolhoz
A H2 adatbázis egy beágyazott GUI konzollal rendelkezik az adatbázis tartalmának böngészéséhez és SQL lekérdezések futtatásához. Alapértelmezés szerint a H2 konzol tavasszal nincs engedélyezve.
Engedélyezéséhez hozzá kell adnunk a következő tulajdonságot a alkalmazás.tulajdonságok:
spring.h2.console.enabled = true
Ezután az alkalmazás elindítása után navigálhatunk a // localhost: 8080 / h2-console, amely bejelentkezési oldalt mutat be nekünk.
A bejelentkezési oldalon ugyanazokat a hitelesítő adatokat adjuk meg, amelyeket a alkalmazás.tulajdonságok:
A csatlakozás után átfogó weboldalt fogunk látni, amely felsorolja az oldal bal oldalán található összes táblázatot és egy szövegdobozt az SQL-lekérdezések futtatásához:
A webkonzol rendelkezik automatikus kiegészítéssel, amely SQL kulcsszavakat javasol. Az a tény, hogy a konzol könnyű, megkönnyíti az adatbázis vizuális ellenőrzését vagy a nyers SQL közvetlen végrehajtását.
Ezenkívül tovább konfigurálhatjuk a konzolt a következő tulajdonságok megadásával a projektben alkalmazás.tulajdonságok a kívánt értékekkel:
spring.h2.console.path = / h2-konzol spring.h2.console.settings.trace = hamis spring.h2.console.settings.web-allow-others = hamis
A fenti részletben a konzol elérési útját állítjuk be / h2-konzol, amely a futó alkalmazásunk címéhez és portjához viszonyul. Ezért, ha az alkalmazásunk fut // localhost: 9001, a konzol a következő címen lesz elérhető: // localhost: 9001 / h2-console.
Továbbá beállítottuk tavasz.h2.konzol.beállítások.nyoma nak nek hamis a nyomkövetés megakadályozása érdekében, és a távoli hozzáférést is letilthatjuk beállítással tavaszi.h2.konzol.beállítások.web-engedélyez-mások nak nek hamis.
6. Következtetés
A H2 adatbázis teljes mértékben kompatibilis a Spring Boot programmal. Láttuk, hogyan kell konfigurálni és hogyan kell használni a H2 konzolt a futó adatbázis kezeléséhez.
A teljes forráskód elérhető a GitHub oldalon.