如何使用LibreOffice连接到Firebird

时间:2014-10-12 19:35:29

标签: java jdbc firebird libreoffice

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

firebirdsql://server:alias
org.firebirdsql.jdbc.FBDriver

当我测试该类时,我收到此错误:

"could not load driver class org.firebirdsql.jdbc.FBDriver"
javax/resource/ResourceException

我在另一台机器上试过并得到了同样的信息。是否有任何额外的东西应该添加到classpath?我在这里失踪了什么?我安装了JRE和JDK,并且我使用的是位于C:\ Program Files(x86)\ Java \ jre7中的第一个。没有定义类路径环境变量,也没有全局或用户

2 个答案:

答案 0 :(得分:3)

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

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

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

jaybird-full-4.0.0.java11.jar 

您可能希望将其移至/ usr / share / java中以保持一致性,但可能需要root权限才能这样做。

返回LibreOffice,在“高级”窗口中单击“类路径”按钮,然后在“添加存档”上添加.jar文件。关闭“高级”窗口,然后重新启动LibreOffice。

连接:启动LO Base。出现数据库连接向导。选择 “连接到现有数据库”。将JDBC指定为驱动程序,然后单击“下一步”。

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

firebirdsql:oo://host[:port]//<path to database file>

例如,

firebirdsql:oo://localhost:3050//home/dave/Firebird/employee.fdb

使用完整路径时,请注意两次出现“ //”。

使用别名时,只有一组:

firebirdsql:oo://localhost:3050/employee

JDBC驱动程序类为:

org.firebirdsql.jdbc.FBDriver

单击“测试类”以确认其正常工作。如果不是,请追溯上述步骤。类测试与连接字符串无关,因此在进行故障排除时无需同时填写两者。

从那时起,它应该是不言而喻的。最后,您将获得一个.odb文件,可用于在工业级Firebird后端上创建视图,报表等。

答案 1 :(得分:2)

Jaybird对JCA(Java连接器体系结构)有必要的依赖,特别是JCA 1.5(尽管更新也应该有效),如Jaybird 2.2.5 releasenotes中所述,

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

你的网址在两件事上也是不正确的:网址的格式是

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

这意味着:alias是错误的(它应该是/alias)。正如Gord Thompson在评论中所述,您需要使用子协议oo,因此您需要使用协议前缀jdbc:firebirdsql:oo来解决JDBC的解释差异,同时也记录了{{3} }。所以你的网址可能应该是这样的:

jdbc:firebirdsql:oo://server/alias