Рубрики
Без рубрики

Пружинная Загрузка С Базой Данных H2

Узнайте, как настроить и использовать базу данных H2 с помощью Spring Boot.

Автор оригинала: baeldung.

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

Затем, после запуска приложения, мы можем перейти к http://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 , который относится к адресу и порту нашего запущенного приложения. Поэтому, если ваше приложение работает в http://localhost:9001 , консоль будет доступна по адресу http://localhost:9001/h2-console.

Кроме того, мы устанавливаем spring.h2.console.settings.trace в false для предотвращения вывода трассировки, а также можем отключить удаленный доступ, установив spring . h2.console.settings.web-allow-others to false .

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

База данных H2 полностью совместима с Spring Boot. Мы видели, как его настроить и как использовать консоль H2 для управления нашей запущенной базой данных.

Полный исходный код доступен на GitHub .