我必须使用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中的第一个。没有定义类路径环境变量,也没有全局或用户
答案 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