2

我是使用其 Java 版本 Jaybird 的 Firebird 新手,但无法从数据库(.fdb 文件)连接。问题是这样的:

org.firebirdsql.jdbc.FBSQLException:GDS 异常。335544375. 数据库不可用

或者

java.lang.RuntimeException:无法初始化 Jaybird 本机库。这很可能是由于未能加载 firebird 客户端库。

使用以下代码:

Class.forName("org.firebirdsql.jdbc.FBDriver").newInstance();
connection = DriverManager.getConnection("jdbc:firebirdsql://localhost/3050:C:/XLNKREPOS /FIRBIRDXA.FDB", "SYSDBA", "masterkey");

在 Eclipse 项目的构建路径中有以下文件:

  • jaybird-full-2.1.5.jar
  • jaybird21.dll
  • fbclient.dll
  • fbembed.dll

还使用 JVM 参数作为-Djava.library.path="D:\Shared\Firebird\Jaybird-2.1.5JDK_1.5"

告诉我我的方法有什么问题?


感谢 RRUZ 给予回复。

实际上,我的连接字符串中的“C:/XLNKREPOS”后面没有空格,这是复制过去的错误。一次又一次,我得到了以下 SQL 异常:

org.firebirdsql.jdbc.FBSQLException:GDS 异常。335544375. 数据库不可用

并且该数据库在其他程序中没有使用。

希望我的这篇文章能让你理解我的问题。

谢谢

4

4 回答 4

3

OP 混合了 Jaybird 支持的两种 jdbc url 格式。

要么使用

jdbc:firebirdsql://[host]{:[port]}/[path]

或者

jdbc:firebirdsql:[host]{/[port]}:[path]

{...}用于表示可选部分

于 2010-01-07T20:19:53.717 回答
1

我有同样的问题,它是由 localhost 之前的那些斜杠引起的。该网址应为:

jdbc:firebirdsql:localhost/3050:C:/XLNKREPOS/FIRBIRDXA.FDB",
于 2009-11-04T11:45:20.857 回答
1

我想问题一定是连接字符串,“C:/XLNKREPOS”后面有一个空格

尝试这个

connection = DriverManager.getConnection("jdbc:firebirdsql://localhost/3050:C:/XLNKREPOS/FIRBIRDXA.FDB", "SYSDBA", "masterkey");

再见。

于 2009-09-22T13:57:27.107 回答
1

当我收到此错误时,是因为我使用的是 x64 Firebird 版本而不是标准 x86 版本。我想,因为我运行的是 64 位操作系统,那些嵌入式二进制文件与我相对应......希望能解决你的问题。

故障排除提示:

通过将来自 apache 站点的最新 log4j jar 添加到我的项目/类路径中,我还能够进一步诊断其他 Firebird 问题。然后,我将 log4j.properties 文件添加到我的默认/根 src 目录中,其中设置了以下属性:

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=[%c{1},%p] %m%n
log4j.rootCategory=DEBUG, stdout
log4j.category.org.firebirdsql=DEBUG, stdout

我还必须System.setProperty("FBLog4j", "true");在我的代码中进行设置。

您可以做的另一件事是确保您在http://firebird.cvs.sourceforge.net/viewvc/firebird/client-java/?view=tar的存储库中运行最新和最好的

只需解压缩 tarball 并使用他们提供的构建脚本 (build.bat/build.sh) 进行编译。编译后查看'output/lib'目录,你会发现jaybird jar 的最新版本(目前是2.2.0)。您还需要位于“native”目录中的最新 jaybird dll(目前为 22 个)。我经历了很多痛苦,试图弄清楚这个废话。Firebird 网站上的文档非常过时且写得不好。

于 2011-03-15T09:04:57.697 回答