Java 如何使用LibreOffice连接到Firebird

Java 如何使用LibreOffice连接到Firebird,java,jdbc,firebird,libreoffice,Java,Jdbc,Firebird,Libreoffice,我必须使用LibreOffice创建一些报告。我需要使用JDBC连接到Firebird数据库。我安装了驱动程序(将其添加到类路径)并配置了要使用的连接 firebirdsql://server:alias org.firebirdsql.jdbc.FBDriver 当我测试该类时,会出现以下错误: “无法加载驱动程序类org.firebirdsql.jdbc.FBDriver” javax/resource/ResourceException 我在另一台机器上试过,得到了同样的信息。有什么额

我必须使用LibreOffice创建一些报告。我需要使用JDBC连接到Firebird数据库。我安装了驱动程序(将其添加到类路径)并配置了要使用的连接

firebirdsql://server:alias
org.firebirdsql.jdbc.FBDriver
当我测试该类时,会出现以下错误:

“无法加载驱动程序类org.firebirdsql.jdbc.FBDriver”
javax/resource/ResourceException

我在另一台机器上试过,得到了同样的信息。有什么额外的东西应该添加到类路径中吗?我错过了什么?我已经安装了JRE和JDK,并且正在使用C:\ProgramFiles(x86)\Java\jre7中的第一个。没有定义类路径环境变量,也没有全局变量,或者对于用户来说,Jaybird对JCA(Java连接器体系结构)具有必需的依赖性,特别是JCA 1.5(尽管更新版本也应该可以),如

这意味着您需要在类路径上包含
connector-api-1.5.jar
(来自
lib
文件夹),或者需要使用
jaybird-full-2.2.5.jar
,因为它包含
connector-api-1.5.jar
中的类

另外,您的url在两个方面是不正确的:url的格式是

jdbc:firebirdsql[:<subprotocol>]://<host>[:<port>]/<path-or-alias>

以上内容对于Jaybird 4.0仍然是正确的。以下是基于Debian 10的更详细的说明。这适用于您已经可以访问的现有Firebird数据库(即,可以连接并拥有已建立的用户名,可能还有pw)

启动LibreOffice而不是Base-使用Calc或仅使用常规LibreOffice图标。转到工具、选项、LibreOffice并单击高级(在顶部,而不是基本选项)。检查已安装JRE的版本号。让“高级”窗口保持打开状态

下载相应版本的Jaybird zip文件并将其解压缩。正如MarkRotterveel在原始答案中指出的,jaybird有一个依赖项,这可能意味着裸jar文件将无法工作。最简单的方法是使用“完整”jar文件:

jaybird-full-4.0.0.java11.jar 
为了保持一致性,您可能希望将其移动到/usr/share/java中,但可能需要root权限

回到LibreOffice,单击高级窗口中的Class Path按钮,然后单击addarchive并添加.jar文件。关闭高级窗口并重新启动LibreOffice

连接:启动LO基地。将显示数据库连接向导。挑选 “连接到现有数据库”。指定JDBC作为驱动程序,然后单击Next

Base提供连接字符串的jdbc:部分,因此添加

firebirdsql:oo://host[:port]//<path to database file>
请注意,使用完整路径时会出现两种“/”情况

使用别名时,只有一组:

firebirdsql:oo://localhost:3050/employee
JDBC驱动程序类是:

org.firebirdsql.jdbc.FBDriver
单击测试类以确认它正在工作。如果没有,请返回上述步骤。类测试独立于连接字符串,因此在进行故障排除时无需同时填写这两个字符串


从那时起,这应该是不言而喻的。最终将得到一个.odb文件,可用于在industrial strength Firebird后端上创建视图、报告等

你能把你的密码贴出来吗?谢谢。配置数据库连接时没有代码(类似于ODBC配置)。一旦实现连接,代码就会出现。我跟着这些。测试驱动程序类时出现错误。我确信类驱动程序名称是正确的,如图所示。您是否记得将
lib/connector-api-1.5.jar
添加到您的LibreOffice类路径(除了添加
jaybird-2.2.5.jar
)中?另外,您是否注意到OpenOffice/LibreOffice Base的数据源URL格式是
jdbc:firebirdsql:oo://host[:port]/
(注意附加的
:oo
)?谢谢大家。工作顺利。我无法详细说明连接字符串,因为甚至无法建立连接。由于LibreOffice插入jdbc,甚至不允许对其进行修改,所以未包含jdbc:。我还尝试了不使用“oo”子策略的情况下运行fine@alvaroc如果没有
:oo
似乎可以工作,但是您可能会遇到一些关于关闭的结果集的边缘问题,并且根据配置,即使您拥有足够的权限,某些表也可能显示为只读,请参阅第二个链接。感谢@davehill的回答。简洁明了。
firebirdsql:oo://localhost:3050/employee
org.firebirdsql.jdbc.FBDriver