火鸟与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的连接的主要内容,如果未能解决你的问题,请参考以下文章