Firebird与java的连接

时间:2010-08-06 13:28:57

标签: java firebird firebird2.1 jaybird

我在Windows XP上安装了Firebird 2.1,并使用firebirdsql.jdbc-2.1.6驱动程序与java连接。代码:

Class.forName("org.firebirdsql.jdbc.FBDriver"); 

connection = DriverManager.getConnection(
    "jdbc:firebirdsql://localhost/3050//C:/firebird/database/EMPLOYEE.FDB", 
    "test","test"); 

我收到以下错误:

Caused by: org.firebirdsql.jdbc.FBSQLException: GDS Exception. 335544375.
unavailable database 
Reason: unavailable database at 
org.firebirdsql.jdbc.FBDataSource.getConnection(FBDataSource.java:122) at 
org.firebirdsql.jdbc.FBDriver.connect(FBDriver.java:140) at 
java.sql.DriverManager.getConnection(DriverManager.java:525) at 
java.sql.DriverManager.getConnection(DriverManager.java:171)

请帮忙。

问题解决了: 实际上我从jar文件中遇到了问题

http://mirrors.ibiblio.org/pub/mirrors/maven2

我从firebird官方网站下载了jaybird-full-2.1.6.jar,问题解决了。

正确的网址是

"jdbc:firebirdsql://localhost:3050/C:\\firebird\\database\\EMPLOYEE.FDB"

我之前也尝试过这个网址,但由于jar问题而无法正常工作。

6 个答案:

答案 0 :(得分:1)

正如@ThorbjørnRavnAndersen所说,你的Jaybird JDBC URL是不正确的。语法为jdbc:firebirdsql:[host[/port]:]<database>。您需要在主机/端口和数据库路径之间使用冒号。也许是这样的:

"jdbc:firebirdsql://localhost/3050:C:\\firebird\database\EMPLOYEE.FDB"
哎呀,我留下了领先的斜线;试试这个:

"jdbc:firebirdsql:localhost/3050:C:\\firebird\database\EMPLOYEE.FDB"

附录:您可能会浏览common errors列表。此外,我的firebird数据库文件以.fdb结尾,但常见问题解答提及.gdb。检查不会有害。

答案 1 :(得分:1)

来自https://www.firebirdsql.org/file/documentation/drivers_documentation/java/faq.html#pure-java-default

默认网址格式:

"jdbc:firebirdsql://host[:port]/<database>"

已弃用,但仍支持旧版网址格式:

"jdbc:firebirdsql:host[/port]:<database>"

然后,正确的URL应为:

"jdbc:firebirdsql://localhost:3050/C:/firebird/database/EMPLOYEE.FDB"

答案 2 :(得分:0)

您的网址很可能已被破解。

将实际源附加到jar并在FBDataSource.getConnection(...)中设置断点,并查看尝试连接时实际存在的值。

您是否完全确定主机名与端口的组合是否与FDB文件的路径一致?

答案 3 :(得分:0)

查看本网站上的文档: http://www.firebirdsql.org/file/documentation/drivers_documentation/java/faq.html,第3.1项

似乎在[port]之后,你必须有一个斜杠&#34; /&#34;或双斜线&#34; //&#34;以防你在linux服务器上连接。

答案 4 :(得分:0)

要连接到位于远程计算机或云(linux)上的数据库,请使用以下链接。

JDBC:firebirdsql:34.212.208.251/3050:/opt/app/db/sample_training.fdb

答案 5 :(得分:0)

您应该尝试这个。在Windows上对我有效。

jdbc:firebirdsql://localhost:3050/C:\firebird\database\EMPLOYEE.FDB

还要确保您为防火墙添加了端口3050的例外。