我有一个小的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
令人沮丧的是,服务器连接字符串似乎在今天早些时候正在运行。至少我可以在进行更改时删除/创建表。
答案 0 :(得分:2)
您必须在客户端和服务器上使用相同的jar(或至少是最新的兼容版本)。
错误显示您在服务器上使用2.x版本jar,但在客户端上使用1.8 jar。检查NetBeans以查看您加载的某个扩展是否具有旧驱动程序。您可以通过将NetBeans项目添加为库来使用正确的jar。
如果错误不是来自NetBeans,请检查应用程序的类路径并确保其中包含最新的jar。