火鸟与java的连接

Posted

技术标签:

【中文标题】火鸟与java的连接【英文标题】:Firebird connection with java 【发布时间】:2011-03-26 08:24:18 【问题描述】:

我已经在 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"); 

我收到以下错误:

原因:org.firebirdsql.jdbc.FBSQLException:GDS 异常。 335544375。 不可用的数据库 原因:数据库不可用 org.firebirdsql.jdbc.FBDataSource.getConnection(FBDataSource.java:122) 在 org.firebirdsql.jdbc.FBDriver.connect(FBDriver.java:140) 在 java.sql.DriverManager.getConnection(DriverManager.java:525) 在 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"

我之前也尝试过此 URL,但由于 jar 问题而无法正常工作。

【问题讨论】:

重新格式化的代码;如果不正确,请恢复。 不要在问题中添加“问题已解决”部分,而是将其作为答案发布并接受。谢谢! 【参考方案1】:

您的 URL 很可能因该驱动程序而损坏。

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

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

【讨论】:

我非常确定连接参数以及 FDB 文件的路径。【参考方案2】:

正如@Thorbjørn Ravn Andersen 所观察到的,您的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。检查不会有坏处。

【讨论】:

我已经尝试了所有选项,包括您指定的 url..没有任何工作.. Firebird 是否在端口 3050 上运行?您可以通过任何其他方式连接,例如isql 还是 GUI 客户端? 我可以连接 isql 和 FlameRobin..它在 3050 端口上运行..我尝试创建一个新数据库..关闭 Windows 防火墙..复制系统 32 中的 dll(如 firebird 上指定支持小组).. @rakesh-nitj:抱歉,我的新想法不多了;以上。 @trashgod: 也尝试​​过 .gdb 数据库。无论如何都在 firebird-java-support 组中发布了这个问题。感谢您的时间和努力!【参考方案3】:

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

看来 [port] 后面必须有斜线“/”或双斜线“//”,以防连接到 linux 服务器。

【讨论】:

【参考方案4】:

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

默认网址格式:

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

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

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

那么,正确的 URL 应该是:

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

【讨论】:

【参考方案5】:

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

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

【讨论】:

【参考方案6】:

你应该试试这个。它适用于我在 Windows 上。

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

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

【讨论】:

以上是关于火鸟与java的连接的主要内容,如果未能解决你的问题,请参考以下文章

C# 操作FireBird(火鸟)数据库

java与oracle要怎样连接?

Java Web与数据库连接

Java中如何与数据库建立连接?

火鸟数据阅读器

Java中如何实现与后台数据库的连接?