src ディレクトリ (Java、Eclipse) に h2-database ファイルがあります: h2test.db
問題:
コマンド ラインから h2.jar を起動し (ポート 8082 で h2 ブラウザ インターフェイスを起動)、h2test.db に 'test1' と 'test2' の 2 つのテーブルを作成し、それらにいくつかのデータを入れました。
Java コード (JDBC) からそれらにアクセスしようとすると、「テーブルが見つからない例外」がスローされます。Java コードからの「テーブルの表示」は、0 行の結果セットを示します。
また、Java コード (CREATE TABLE ... など) から新しいテーブル ('newtest') を作成する場合、後で h2.jar ブラウザー インターフェイスを起動すると、それが表示されません。他の 2 つのテーブル (「test1」と「test2」) だけが表示されます (ただし、新しく作成されたテーブル「newtest」には Java コードからアクセスできます)。
私は組み込みデータベースの経験がありません。ここで根本的に間違ったことをしていると思います。私の仮定は、同じファイルにアクセスしているということです.1回はJavaアプリから、もう1回は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();
この結果セットには、2 つのテーブルが表示されるのではなく、0 行 (テーブルなし) があります。
H2 コンソール - ブラウザー インターフェースの設定:
設定: Generic h2(embedded) ドライバークラス: org.h2.Driver JDBC URL: jdbc:h2:../../workspace/project_name/src/db/h2test.db ユーザー名: aeter パスワード: aeter
EDIT2: データベースを新しいフォルダーにコピーしました。新しいフォルダの db ファイルは、'newtest' テーブル (Java コードから) と 'test1' および 'test2' テーブル (コンソール ブラウザ h2 インターフェイスから) で表示されます - 古い db とまったく同じ方法ファイルが表示されました。そのため、問題は db ファイルのコピーで解決しません。