2011-10-21 107 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