Автор оригинала: 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 .