Forårstøvle med H2-database

1. Oversigt

I denne vejledning udforsker vi brug af H2 med Spring Boot. Ligesom andre databaser er der fuld iboende support til det i Spring Boot-økosystemet.

2. Afhængigheder

Lad os begynde med h2 og spring-boot-starter-data-jpa afhængigheder:

 org.springframework.boot spring-boot-starter-data-jpa com.h2database h2 runtime 

3. Databasekonfiguration

Spring Boot konfigurerer som standard applikationen til oprette forbindelse til en lagerhukommelse med brugernavnet sa og en tom adgangskode.

Vi kan dog ændre disse parametre ved at tilføje følgende egenskaber til application.properties fil:

spring.datasource.url = jdbc: h2: mem: testdb spring.datasource.driverClassName = org.h2.Driver spring.datasource.username = sa spring.datasource.password = password spring.jpa.database-platform = org.hibernate. dialekt.H2Dialekt

I design er databasen i hukommelsen ustabil, og data går tabt, når vi genstarter applikationen.

Vi kan ændre denne adfærd ved hjælp af filbaseret opbevaring. For at gøre dette skal vi opdatere spring.datasource.url:

spring.datasource.url = jdbc: h2: file: / data / demo

Databasen kan også fungere i andre tilstande.

4. Databasefunktioner

Udførelse af CRUD-operationer med H2 i Spring Boot er det samme som med andre SQL-databaser, og vores tutorials i Spring Persistence-serien gør et godt stykke arbejde med at dække dette.

I mellemtiden, lad os tilføje en data.sql fil i src / main / ressourcer:

DROPTABEL, HVIS DET FINDER milliardærer; Opret TABEL milliardærer (id INT AUTO_INCREMENT PRIMÆR NØGLE, fornavn VARCHAR (250) IKKE NULL, efternavn VARCHAR (250) IKKE NULL, karriere VARCHAR (250) STANDARD NULL); INDSÆT I Milliardærer (fornavn, efternavn, karriere) VÆRDIER ('Aliko', 'Dangote', 'Millionaire Industrialist'), ('Bill', 'Gates', 'Billionaire Tech Entrepreneur'), ​​('Folrunsho', 'Alakija' , 'Billionaire Oil Magnate');

Spring Boot vil automatisk afhente data.sql og kør den mod vores konfigurerede H2-database under opstart af applikationen. Dette er en god måde at udså databasen til test eller andre formål.

5. Adgang til H2-konsollen

H2-database har en indbygget GUI-konsol til at gennemse indholdet af en database og køre SQL-forespørgsler. H2-konsollen er som standard ikke aktiveret i foråret.

For at aktivere det skal vi tilføje følgende egenskab til application.properties:

spring.h2.console.enabled = sandt

Derefter, efter start af applikationen, kan vi navigere til // localhost: 8080 / h2-konsol, som vil give os en login-side.

På login-siden leverer vi de samme legitimationsoplysninger, som vi brugte i application.properties:

Når vi opretter forbindelse, ser vi en omfattende webside, der viser alle tabellerne til venstre på siden og en tekstboks til kørsel af SQL-forespørgsler:

Webkonsollen har en automatisk komplet funktion, der foreslår SQL-nøgleord. Det faktum, at konsollen er let, gør den praktisk til visuel inspektion af databasen eller udførelse af rå SQL direkte.

Desuden kan vi konfigurere konsollen yderligere ved at angive følgende egenskaber i projektets application.properties med vores ønskede værdier:

spring.h2.console.path = / h2-console spring.h2.console.settings.trace = false spring.h2.console.settings.web-allow-others = false

I uddraget ovenfor indstiller vi konsolstien til at være / h2-konsol, som er relateret til adressen og porten til vores kørende applikation. Derfor, hvis vores app kører kl // localhost: 9001, vil konsollen være tilgængelig på // localhost: 9001 / h2-konsol.

Desuden sætter vi spring.h2.console.settings.trace til falsk for at forhindre sporingsoutput, og vi kan også deaktivere fjernadgang ved at indstille forår.h2.console.settings.web-tillad-andre til falsk.

6. Konklusion

H2-databasen er fuldt kompatibel med Spring Boot. Vi har set, hvordan vi konfigurerer det, og hvordan man bruger H2-konsollen til styring af vores kørende database.

Den komplette kildekode er tilgængelig på GitHub.