Jdbc RazorSQL导致HSQLDB抛出org.HSQLDB.HsqlException:客户端驱动程序版本大于';2.1.0.0';是必需的。HSQLDB服务器版本为';2.3.4';

Jdbc RazorSQL导致HSQLDB抛出org.HSQLDB.HsqlException:客户端驱动程序版本大于';2.1.0.0';是必需的。HSQLDB服务器版本为';2.3.4';,jdbc,hsqldb,razorsql,Jdbc,Hsqldb,Razorsql,我无法从连接到我的数据库。只有当我在服务器模式下运行并且试图从连接时,我才会出现此问题 使用来自Eclipse数据源资源管理器和应用程序本身(Hibernate 5.2.7应用程序)的相同URL,我能够在URL“”处成功连接到我的数据库。因为我在服务器模式下运行它,所以我能够并发连接 (注意:我不必有多个并发连接,但它使调试更容易)。正在通过…从命令行以服务器模式运行数据库 java -cp ../libs/hsqldb-2.3.4/hsqldb/lib/hsqldb.jar org.hsqld

我无法从连接到我的数据库。只有当我在服务器模式下运行并且试图从连接时,我才会出现此问题

使用来自Eclipse数据源资源管理器和应用程序本身(Hibernate 5.2.7应用程序)的相同URL,我能够在URL“”处成功连接到我的数据库。因为我在服务器模式下运行它,所以我能够并发连接

(注意:我不必有多个并发连接,但它使调试更容易)。正在通过…从命令行以服务器模式运行数据库

java -cp ../libs/hsqldb-2.3.4/hsqldb/lib/hsqldb.jar org.hsqldb.server.Server --database.0 file:/Users/arick/src/databases/SudokuHibernate --dbname.0 SudokuHibernate
尝试从连接时,数据库控制台显示错误消息。“org.hsqldb.hsqldb异常:需要高于'2.1.0.0'的客户端驱动程序版本。服务器版本为'2.3.4'。”

注意:这是一个不同的问题,因为我自己的所有配置文件都显式引用同一个jar文件中的同一个JDBC驱动程序。然而,正如所指出的,所引用的“2.1.0.0”有点误导。实际上只是说客户端和服务器有两个不同版本的JDBC驱动程序

在数据库抛出不匹配版本错误的同时,RazorSQL显示一个对话框,其中显示错误消息:

ERROR: An error occurred while trying to make a connection to the database: 
JDBC URL: jdbc:hsqldb:hsql://localhost/SudokuHibernate
connection exception: connection failure: java.io.EOFException
下面是我的连接配置文件

RazorSQL配置文件 驱动程序位置:/Users/arick/src/libs/hsqldb-2.3.4/hsqldb/lib/hsqldb.jar
JDBCURL

正如所推断的,答案类似于在独立服务器模式下运行的JDBCURL的相关问题

在这种情况下,项目负责人指出,答案是修改Eclipse和Maven中使用的配置文件,以引入适当版本的JDBC jar文件,并确保jar文件不会出现在类路径的其他任何地方。Maven使用
pom.xml
文件进行配置;因此,需要确保在项目的
pom.xml
文件中定义了正确的版本

在我的情况下,我使用的产品恰好作为嵌入式数据库本身使用。如果我一直在使用任何其他Java数据库,我可能没有这个问题。但是,由于产品已经加载了自己版本的jar文件,所以我在数据库连接的配置中指定了什么并不重要。这是行不通的

无论我如何更改我的驱动程序配置文件或连接配置文件,唯一要加载的jar文件版本是原始的jar文件,它已经由使用,并且随附。(注意:这是真的,除非你想入非非,它决定使用不同的类加载器,以及Java应用服务器通常使用的一些其他技巧来解决这些问题)

根据来自的Dan Richardson的建议,实际的答案不是修改我的配置,而是更改发行版本身的内容。我需要替换应用程序使用的
jar
文件。此
jar
文件位于的Mac应用程序文件夹中。此位置通常位于
/Applications/RazorSQL.app/Contents/Java/drivers/hsqldb


(注意:如果您不熟悉如何打开Mac app文件夹,只需右键单击
/Applications
目录中的文件夹名称,然后使用“显示软件包内容”菜单选项)。在我的例子中,我将原始的hsqldb.jar文件重命名为hsqldb_2.3.2.jar文件,然后复制了hsqldb.jar

的最后一个发行版,与您声称的相反,RazorSQL使用的是hsqldb的驱动程序版本2.1(至少不是2.3.4)。因此,它与副本相同。可能的副本