h2 (встроенный режим) проблема файлов базы данных

Существует файл h2-базы-данных в моем src каталоге (Java, Eclipse): h2test.db

Проблема:

  • при запуске h2.jar с командной строки (и таким образом h2 интерфейс браузера на порте 8082), я составил 2 таблицы, 'test1' и 'test2' в h2test.db, и я поместил некоторые данные в них;

  • при попытке получить доступ к ним из кода Java (JDBC), это бросает меня "таблица, не найденная исключением". "Шоу таблицы" из кода Java показывает набор результатов с 0 строками.

  • Кроме того, при составлении новой таблицы ('newtest') из кода Java (CREATE TABLE... и т.д.), я не вижу его при запуске h2.jar интерфейса браузера впоследствии; просто другие две таблицы ('test1' и 'test2') показывают (но затем недавно составленная таблица 'newtest' доступна из кода Java).

Я неопытен со встроенными базами данных; я полагаю, что делаю что-то существенно неправильно здесь. Мое предположение, что я получаю доступ к тому же файлу - однажды из приложения Java, и однажды от h2 консольного интерфейса браузера. Я, может казаться, не понимаю это, что я делаю неправильно здесь?

Править: согласно просьбе, добавление некоторого кода:

Код Java:

Class.forName("org.h2.Driver");
String url = "jdbc:h2:" + "db/h2test.db";
String user = "aeter"; 
String password = "aeter"; 
Connection conn = DriverManager.getConnection(url, user, password);
PreparedStatement ps2 = conn.prepareStatement("Show tables;");
ResultSet rs = ps2.executeQuery();

Этот набор результатов имеет 0 строк (никакие таблицы), вместо того, чтобы показать мне эти 2 таблицы.

Настройки Консольного интерфейса браузера H2:

Settings: Generic h2(embedded)
driver class: org.h2.Driver
JDBC URL: jdbc:h2:../../workspace/project_name/src/db/h2test.db
user name: aeter
password: aeter 

EDIT2: Я скопировал базу данных в новую папку. Теперь файл дб в новой папке показывают с 'newtest' таблицей (из кода Java) и с 'test1' и 'test2' таблицами (от консольного браузера h2 интерфейс) - точно тот же способ, которым показали более старый файл дб. Таким образом, проблема сохраняется с копией файла дб.

15
задан aeter 14 March 2010 в 17:09
поделиться

1 ответ

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

"jdbc:h2:file:~/db/h2test.db"

Чтобы быть уверенным, используйте полный путь:

"jdbc:h2:file:/users/aeter/db/h2test.db"

Для удобства добавьте ; IFEXISTS = TRUE , чтобы избежать создания ложных файлов базы данных.

См. Подключение к базе данных с помощью JDBC для получения дополнительной информации.

H2 Сервер URL-адреса относятся к -baseDir , указанному в качестве параметра для main () .

15
ответ дан 1 December 2019 в 03:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: