2011-10-21 54 views
2

我使用名爲「Test」的Java DB創建了一個新數據庫,並且我嘗試使用java DB Embedded驅動程序創建連接,但是當我在數據庫名稱中輸入Test並添加用戶名和通過按OK,出現了一個錯誤:無法連接到我的Derby數據庫

「無法添加連接不能建立使用org.apache.derby.jdbc.EmbeddedDriver到jdbc.derby.Test連接(數據庫‘test’未找到)」

爲什麼我會收到此消息?

然後,當我寫我的代碼

String conStr = "jdbc:derby:Test"; 
    String driver2 = "org.apache.derby.jdbc.EmbeddedDriver"; 
    try { 
     Class.forName(driver2); 
     System.out.println("driver"); 
    } catch (ClassNotFoundException e1) { 
     e1.printStackTrace(); 
    } 
    try { 
     Properties props = new Properties(); 
     props.put("user", "sahar"); 
     props.put("password", "123456"); 
     //Connection conn = DriverManager.getConnection(conStr); 
     Connection conn = DriverManager.getConnection(conStr,props); 
     System.out.println("connect "); 
    } catch (SQLException e) { 
     e.printStackTrace(); 
    } 

它拋出一個異常「數據庫‘test’找不到」

+0

嘗試通過以下說明收集更多的信息:http://wiki.apache.org/db-derby/UnwindExceptionChain –

回答

1

沒有看到代碼,很難猜測,但也許你需要create=true您的連接串。

final String connectionURL = "jdbc:derby:" + dbName + ";create=true"; 

(我把這個複製和粘貼出來的應用程序我有一個使用的嵌入式數據庫。)

+0

但我不想創建數據庫它已經存在 ,我不談論任何代碼,我使用netbeans嚮導 – sahar

+0

,當我編寫我的代碼連接到這個數據庫時,它拋出異常數據庫「測試」找不到 – sahar

+0

那麼,你需要改變你的工作目錄。根據數據庫的物理目錄檢查工作目錄。 – corsiKa

3

如果你確實已經創建了一個本地數據庫,嘗試指向絕對文件名,而不是相對的一個。

 
Unix: 
jdbc:derby:/srv/databases/Test 

Windows: 
jdbc:derby:c:/databases/Test 

更好的方法可能是通過Derby網絡服務器來訪問數據庫

+0

但這是絕對路徑 C:\ Users \ m \ .netbeans-derby \ Test。但它會引發異常「無法啓動數據庫」c:\ Users \ m \ .netbeans-derby \ Test'「 – sahar

+0

注意反斜槓。在Java中,你可能必須加倍反斜槓。 –

+0

@BryanPendleton,我使用jdbc:derby:c:\\ Users \\ m \\。netbeans-derby \\測試 但它會拋出一個異常「無法啓動數據庫」c:\ Users \ m \ .netbeans-derby \測試'「爲什麼? – sahar