Пролетно зареждане с база данни H2

1. Общ преглед

В този урок ще разгледаме използването на H2 с Spring Boot. Подобно на други бази данни, има пълна вътрешна поддръжка за него в екосистемата Spring Boot.

2. Зависимости

Нека започнем с зависимостите h2 и spring-boot-starter-data-jpa :

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

3. Конфигуриране на база данни

По подразбиране Spring Boot конфигурира приложението да се свързва към хранилище в паметта с потребителско име sa и празна парола .

Въпреки това можем да променим тези параметри, като добавим следните свойства към файла application.properties :

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.dialect.H2Dialect

По дизайн базата данни в паметта е променлива и данните ще бъдат загубени, когато рестартираме приложението.

Можем да променим това поведение, като използваме базирано на файлове съхранение. За целта трябва да актуализираме spring.datasource.url :

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

Базата данни може да работи и в други режими.

4. Операции с база данни

Извършването на CRUD операции с H2 в рамките на Spring Boot е същото като при другите бази данни на SQL и нашите уроци от поредицата Spring Persistence вършат добра работа за покриването на това.

Междувременно нека добавим файл data.sql в src / main / resources :

DROP TABLE IF EXISTS billionaires; CREATE TABLE billionaires ( id INT AUTO_INCREMENT PRIMARY KEY, first_name VARCHAR(250) NOT NULL, last_name VARCHAR(250) NOT NULL, career VARCHAR(250) DEFAULT NULL ); INSERT INTO billionaires (first_name, last_name, career) VALUES ('Aliko', 'Dangote', 'Billionaire Industrialist'), ('Bill', 'Gates', 'Billionaire Tech Entrepreneur'), ('Folrunsho', 'Alakija', 'Billionaire Oil Magnate');

Spring Boot автоматично ще вземе data.sql и ще го стартира спрямо нашата конфигурирана база данни H2 по време на стартиране на приложението. Това е добър начин за създаване на база данни за тестване или други цели.

5. Достъп до конзолата H2

Базата данни H2 има вградена GUI конзола за разглеждане на съдържанието на база данни и изпълнение на SQL заявки. По подразбиране конзолата H2 не е активирана през пролетта.

За да го активираме, трябва да добавим следното свойство към application.properties :

spring.h2.console.enabled=true

След това, след стартиране на приложението, можем да отидем до // localhost: 8080 / h2-console , който ще ни представи страница за вход.

На страницата за вход ще предоставим същите идентификационни данни, които използвахме в application.properties :

След като се свържем, ще видим изчерпателна уеб страница, която изброява всички таблици в лявата част на страницата и текстово поле за изпълнение на SQL заявки:

Уеб конзолата има функция за автоматично попълване, която предлага ключови думи SQL. Фактът, че конзолата е лека, я прави удобна за визуална проверка на базата данни или директно изпълнение на суров SQL.

Освен това, ние може допълнително конфигуриране на конзолата чрез определяне на следните недвижими имоти в проекта application.properties с нашите желания стойности:

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

В горния фрагмент задаваме конзолния път да бъде / h2-console , който е свързан с адреса и порта на нашето работещо приложение. Следователно, ако приложението ни работи на // localhost: 9001 , конзолата ще бъде достъпна на // localhost: 9001 / h2-console.

Освен това настройваме spring.h2.console.settings.trace на false, за да предотвратим извеждането на трасиране, а също така можем да деактивираме отдалечения достъп, като зададем spring . h2.console.settings.web-allow-others да фалшиви .

6. Заключение

Базата данни H2 е напълно съвместима с Spring Boot. Видяхме как да го конфигурираме и как да използваме конзолата H2 за управление на нашата работеща база данни.

Пълният изходен код е достъпен в GitHub.