В моем каталоге src (Java, Eclipse) есть файл h2-database: 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. Кажется, я не понимаю, что я здесь делаю неправильно?
EDIT: в соответствии с запросом, добавив некоторый код:
Код 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: Я скопировал базу данных в новую папку. Теперь файл db в новой папке отображается с таблицей "newtest" (из кода Java) и таблицами "test1" и "test2" (из интерфейса h2-интерфейса консоли) - точно так же, как и старый db файл был показан. Поэтому проблема сохраняется с копией файла db.