В моем каталоге src есть файл h2-базы данных (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 строк (без таблиц) вместо двух таблиц.
Настройки интерфейса консоли 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 файл был показан. Таким образом, проблема сохраняется с копией файла базы данных.