如何制作 HSQLDB 2 客户端程序?

Posted

技术标签:

【中文标题】如何制作 HSQLDB 2 客户端程序?【英文标题】:How do I make a HSQLDB 2 client program? 【发布时间】:2014-06-25 12:02:47 【问题描述】:

我有一个小的 HSQLDB 程序来测试一些 SQL。我收到此错误:

 A pre-version 2.0 client attempted to connect.  We rejected them.

然而,我唯一拥有的 JDBC 驱动程序是最近下载的 HSQLDB v2.3:

hsqldb/lib/hsqldb.jar

我正在使用这个字符串来加载 JDBC 驱动程序:

 Class.forName("org.hsqldb.jdbcDriver");

而连接字符串是:

 connectionStr = "jdbc:hsqldb:hsql://localhost/tmp_db";
 user=sa, password=

默认值。我的 HSQLDB 服务器似乎已经使用如下数据库正常启动:

 server.dbname.0=**tmp_db**
 server.database.0=file:r:/.data/hsqldb/**tmp_db/tmp**
[Server@372f7a8d]: Database [index=2, id=2, db=file:r:/.data/hsqldb/**tmp_db/tmp**, alias=tmp_db] opened sucessfully in 26 ms.

我正在使用 Netbeans,当我通过“服务”选项卡连接时,数据库似乎可以正常打开。 Netbeans 不会使用相同的驱动程序吗?我可以检查一下吗?

最大的问题是我们如何指定版本 2 的客户端连接、驱动程序或参数?我必须为正确的驱动程序获取不同的 JAR 吗?

最后一件事。如果我使用基于文件的连接,测试程序可以正常工作,例如:

jdbc:hsqldb:db_file

同样令人沮丧的是,服务器连接字符串今天早些时候似乎还在工作。至少我可以在进行更改时删除/创建表。

【问题讨论】:

【参考方案1】:

您必须在客户端和服务器上使用相同的 jar(或至少是最新的兼容版本)。

错误显示您在服务器上使用的是 2.x 版本的 jar,但在客户端上使用的是 1.8 版本的 jar。检查 NetBeans 以查看您已加载的某些扩展是否具有旧驱动程序。您可以通过将其添加为库来在 NetBeans 项目中使用正确的 jar。

如果错误不是来自 NetBeans,请检查应用程序的类路径并确保其中包含最新的 jar。

【讨论】:

以上是关于如何制作 HSQLDB 2 客户端程序?的主要内容,如果未能解决你的问题,请参考以下文章

Hsqldb 版本问题:客户端驱动程序版本大于 .是必须的

HSQLDB - 9.0 之前的客户端尝试连接

SQL 客户端中的 HSQLDB 数据库

连接到 Play 应用程序中嵌入的 HSQLDB 数据库

使用 HSQLDB 制作登录页面的最佳方法 - Java

多客户端的 HSQLDB 性能如何