有一個在我的src目錄(Java,Eclipse的)一個H2數據庫文件:h2test.dbH2(嵌入模式)數據庫文件的問題
問題:
開始h2.jar從命令行(因此在端口8082上的h2瀏覽器接口),我已經在h2test.db中創建了兩個表'test1'和'test2',並且我已經在其中放入了一些數據;
當試圖從Java代碼(JDBC)訪問它們時,它會引發「表未找到異常」。 java代碼中的「show tables」顯示一個0行的結果集。另外,當從java代碼(CREATE TABLE ...等)創建一個新表('newtest')時,之後啓動h2.jar瀏覽器界面時我看不到它;只顯示另外兩個表('test1'和'test2')(但是隨後可以從java代碼中訪問新創建的表'newtest')。
我對嵌入式數據庫沒有經驗;我相信我在這裏做了一些根本性的錯誤。我的假設是,我正在訪問同一個文件 - 一次來自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:我將數據庫複製到一個新的文件夾。現在新文件夾中的db文件顯示爲'newtest'表(來自java代碼)和'test1'和'test2'表(來自控制檯 - 瀏覽器h2接口) - 與舊的db完全相同文件被顯示。所以這個問題仍然存在於db文件的副本中。
@Lubos:鏈接已死 – Chris 2018-02-18 09:26:24
@Lubos:結果是「301永久移動」。 – trashgod 2018-02-18 15:56:21