Подтвердить что ты не робот

Где H2 Встроенные базы данных Храните данные?

Итак, я только недавно начал изучать, как работают базы данных, как использовать SQL-ect. и решил начать внедрение встроенной базы данных в мое приложение Java (в частности, базу данных H2) и, похоже, работал достаточно хорошо на компьютере, на котором я кодировал.

Когда я перешел на другой компьютер, чтобы продолжить кодирование, я заметил, что даже если я портировал встроенный файл базы данных (h2 - *. jar), все подготовленные таблицы, которые я создал на первом компьютере, не существовали на второй. У меня как-то было предубеждение, что фактические данные, сгенерированные с помощью механизма базы данных, также хранятся во встроенном файле базы данных.

Итак, мой вопрос: где хранятся данные из базы данных? возможно ли подготовить базу данных, которая уже содержит тысячи записей и распространять ее с помощью реального приложения?

Следует также упомянуть, что способ подключения к базе данных на первом компьютере был через соединение JDBC, то есть URL: JDBC: h2: ~/test, и когда я пытался подключиться к этой базе данных на втором компьютере, он сделал не существует.

Спасибо!

4b9b3361

Ответ 1

Прочитайте FAQ:

Где хранятся файлы базы данных?

При использовании URL-адресов базы данных, таких как jdbc:h2:~/test, база данных хранится в каталоге пользователя. Для Windows это обычно C:\Documents and Settings\<userName> или C:\Users\<userName>. Если базовый каталог не установлен (как в jdbc:h2:./test), файлы базы данных хранятся в каталоге, в котором запущено приложение (текущий рабочий каталог). При использовании приложения "Консоль H2" из меню "Пуск" это <Installation Directory>/bin. Базовый каталог может быть установлен в URL-адрес базы данных. Можно использовать фиксированный или относительный путь. При использовании URL jdbc:h2:file:./data/sample база данных хранится в данных каталога (относительно текущего рабочего каталога). Каталог создается автоматически, если он еще не существует. Также возможно использовать полное имя каталога (и для Windows, имя диска). Пример: jdbc:h2:file:C:/data/test

Ответ 2

h2-*.jar - это всего лишь движок (код) базы данных. Он доступен только для чтения и не хранит никакой информации. Данные в H2 могут храниться либо в памяти, либо на диске в указанном файле. Вы на самом деле указываете один:

JDBC:h2:~/test/

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

Ответ 3

В windows вам нужно установить URL JDBC с этим значением:

JDBC URL: jdbc:h2:mem:testdb