我是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项目的构建路径中包含以下文件:
还将JVM参数用作-Djava.library.path="D:\Shared\Firebird\Jaybird-2.1.5JDK_1.5"
告诉我我的做法有什么问题?
感谢RRUZ给予回复。
实际上我的连接字符串中的“C:/ XLNKREPOS”之后没有空格,这是一个错过的副本。再次&我又得到了以下SQL异常:
org.firebirdsql.jdbc.FBSQLException:GDS异常。 335544375.不可用的数据库
并且该数据库不在其他程序中使用。
希望我的这篇文章让你理解我的问题。
谢谢
答案 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网站上的文档已经过时且写得不好。