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

Где Встроенная База Данных H2 Хранит Эти Данные?

Узнайте, как настроить расположение файлов базы данных H2.

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

1. введение

В этой статье мы узнаем, как настроить приложение Spring Boot для использования встроенной базы данных H2 , а затем посмотрим, где встроенная база данных H2 хранит эти данные.

База данных H2-это легкая база данных с открытым исходным кодом, не имеющая на данный момент коммерческой поддержки. Мы можем использовать его в различных режимах:

  • режим сервера – для удаленных подключений с использованием JDBC или ODBC через TCP/IP
  • встроенный режим – для локальных соединений, использующих JDBC
  • смешанный режим – это означает, что мы можем использовать H2 как для локальных, так и для удаленных соединений

H2 может быть сконфигурирован для работы в качестве базы данных in-memory , но он также может быть постоянным, например, его данные будут храниться на диске. Для целей этого урока мы будем работать с базой данных H2 во встроенном режиме с включенной персистентностью, поэтому у нас будут данные на диске .

2. Встроенная база данных H2

Если мы хотим использовать базу данных H2, нам нужно добавить зависимости h2 и spring-boot-starter-data-jpa Maven в ваш pom.xml файл:


    com.h2database
    h2
    1.4.200
    runtime


    org.springframework.boot
    spring-boot-starter-data-jpa
    2.3.4.RELEASE

3. Встроенный режим Персистентности H2

Мы уже упоминали, что H2 может использовать файловую систему для хранения данных базы данных. Самое большое преимущество этого подхода по сравнению с подходом в памяти заключается в том, что данные базы данных не теряются после перезапуска приложения.

Мы можем настроить режим хранения через свойство spring.datasource.url в нашем файле application.properties . Таким образом, мы можем настроить базу данных H2 на использование подхода in-memory, добавив параметр mem в URL-адрес источника данных, а затем имя базы данных:

spring.datasource.url=jdbc:h2:mem:demodb

Если мы используем режим сохранения на основе файлов, мы установим один из доступных вариантов расположения дисков вместо параметра mem . В следующем разделе мы обсудим, что это за варианты.

Давайте посмотрим, какие файлы создает база данных H2:

  • demodb.mv.db – в отличие от других, этот файл всегда создается и содержит данные, журнал транзакций и индексы
  • demodb.lock.db – это файл блокировки базы данных, и H2 воссоздает его, когда база данных используется
  • demodb.trace.db – этот файл содержит информацию о трассировке
  • demodb.123.temp.db – используется для обработки больших двоичных объектов или огромных результирующих наборов
  • demodb.newFile – H2 использует этот файл для сжатия базы данных и содержит новый файл хранилища базы данных
  • demodb.oldFile – H2 также использует этот файл для сжатия базы данных и содержит старый файл хранилища баз данных

4. Встроенное Хранилище Базы Данных H2

H2 очень гибок в отношении хранения файлов базы данных. В данный момент мы можем настроить его каталог хранения так, чтобы:

  • каталог на диске
  • текущий каталог пользователя
  • текущий каталог проекта или рабочий каталог

4.1. Каталог на диске

Мы можем установить конкретное местоположение каталога, в котором будут храниться наши файлы базы данных:

spring.datasource.url=jdbc:h2:file:C:/data/demodb

Обратите внимание, что в этой строке подключения последний фрагмент ссылается на имя базы данных . Кроме того, даже если мы пропустим ключевое слово file в этом URL-адресе подключения к источнику данных, H2 будет управлять им и создавать файлы в указанном месте.

4.2. Текущий Каталог Пользователя

Если мы хотим сохранить файлы базы данных в текущем каталоге пользователя, мы будем использовать URL-адрес источника данных, содержащий тильду (~) после ключевого слова file :

spring.datasource.url=jdbc:h2:file:~/demodb

Например, в системах Windows этот каталог будет C:/Users/<текущий пользователь> .

Для хранения файлов базы данных в подкаталоге текущего каталога пользователя:

spring.datasource.url=jdbc:h2:file:~/subdirectory/demodb

Обратите внимание, что если подкаталог не существует, он будет создан автоматически .

4.3. Текущий Рабочий Каталог

Текущий рабочий каталог-это тот, в котором запущено приложение, и на него ссылаются как на точку (.) в URL-адресе источника данных. Если нам нужны файлы базы данных, мы настроим ее следующим образом:

spring.datasource.url=jdbc:h2:file:./demodb

Для хранения файлов базы данных в подкаталоге текущего рабочего каталога:

spring.datasource.url=jdbc:h2:file:./subdirectory/demodb

Обратите внимание, что если подкаталог не существует, он будет создан автоматически.

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

В этом коротком уроке мы обсудили некоторые аспекты базы данных H2 и показали, где встроенная база данных H2 хранит эти данные. Мы также узнали, как настроить расположение файлов базы данных.

Полный образец кода доступен на GitHub .