JayBird中的连接问题

时间:2009-09-22 10:01:49

标签: connection firebird jaybird

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

org.firebirdsql.jdbc.FBSQLException: GDS Exception. 335544375. unavailable database

OR

java.lang.RuntimeException: Failed to initilize Jaybird native library. This is most likley due to a failure to load the firebird client library.

使用以下代码:

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

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

  • jaybird-全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 个答案:

答案 0 :(得分:3)

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

使用

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

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

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

答案 1 :(得分:1)

我认为问题必须是连接字符串,“C:/ XLNKREPOS”之后有一个空格

试试这个

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

再见。

答案 2 :(得分:1)

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

jdbc:firebirdsql:localhost/3050:C:/XLNKREPOS/FIRBIRDXA.FDB",

答案 3 :(得分:1)

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

故障排除提示:

我还能够通过将最新的log4j jar从apache的站点添加到我的项目/类路径来进一步诊断其他Firebird问题。然后我将log4j.properties文件添加到我的默认/ root 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)。您还需要最新的jaybird dll(截至目前为22),它位于“原生”目录中。我经历了很多痛苦,试图弄清楚这个废话。 Firebird网站上的文档已经过时且写得不好。