hsqldb.jdbc中的createArrayOf字符串返回AbstractMethodError

hsqldb.jdbc中的createArrayOf字符串返回AbstractMethodError,jdbc,hsqldb,ojdbc,Jdbc,Hsqldb,Ojdbc,我正在为运行Oracle数据库的java程序编写测试用例。我的代码是: st = conn.prepareStatement( MY_QUERY, ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY); Array array = conn.createArrayOf("VARCHAR", ids); st.setArray(1, array

我正在为运行Oracle数据库的java程序编写测试用例。我的代码是:

st = conn.prepareStatement( MY_QUERY, ResultSet.TYPE_SCROLL_INSENSITIVE,
                ResultSet.CONCUR_READ_ONLY);

            Array array  = conn.createArrayOf("VARCHAR", ids);
            st.setArray(1, array);
            rs = st.executeQuery();
查询在哪里

QUERY = "SELECT * from TABLE where id in ?"
我们正在使用hsqldb数据库进行测试。但是,在测试中运行上述代码会

java.lang.AbstractMethodError: org.hsqldb.jdbc.jdbcConnection.createArrayOf(Ljava/lang/String;[Ljava/lang/Object;)Ljava/sql/Array;
createArrayOf
行中

我还没有找到解决这个问题的办法。如果您能提供帮助,我将不胜感激。感谢在类
JDBCConnection
(实现
java.sql.Connection
)的(2.x版)中,
createArrayOf
方法可用并记录在案:

createArrayOf

公共数组createArrayOf(字符串类型名, 对象[]元素) 抛出SQLException

自HSQLDB版本2.x以来,支持此方法。因此,您应该更新应用程序以使用最新的HSQLDB驱动程序,该驱动程序可以是

根据,您应该使用至少2.2.1版的HSQLDB驱动程序作为开发团队在本版本中的“连接的固定类型限制”方法。

在类
JDBCConnection
的(2.x版)中(实现
java.sql.Connection
createArrayOf
方法可用并有文档记录:

createArrayOf

公共数组createArrayOf(字符串类型名, 对象[]元素) 抛出SQLException

自HSQLDB版本2.x以来,支持此方法。因此,您应该更新应用程序以使用最新的HSQLDB驱动程序,该驱动程序可以是


根据,您应该使用至少2.2.1版的HSQLDB驱动程序作为开发团队在此版本中的“固定连接类型限制#createArrayOf”方法。

在HSQLDB中,SQL查询语法不同:

SELECT * from TABLE WHERE id IN(UNNEST(?))

HSQLDB中的SQL查询语法不同:

SELECT * from TABLE WHERE id IN(UNNEST(?))

您使用的是什么版本的HSQLDB?该方法是在Java 1.6(或JDBC 4)中添加的,因此您的HSQLDB版本似乎没有实现JDBC 4。我的版本是
1.8.0.9
。我之所以使用它,是因为我们的Spring版本是
3.1.1
,当时使用的是HSQLDB版本。我应该升级看看吗?据我所知,HSQLDB1.8.x只支持JDBC3(部分)。最新版本是2.3.3,但我不知道JDBC4在这方面的支持程度。您使用的是什么版本的HSQLDB?该方法是在Java 1.6(或JDBC 4)中添加的,因此您的HSQLDB版本似乎没有实现JDBC 4。我的版本是
1.8.0.9
。我之所以使用它,是因为我们的Spring版本是
3.1.1
,当时使用的是HSQLDB版本。我应该升级看看吗?据我所知,HSQLDB1.8.x只支持JDBC3(部分)。最新版本是2.3.3,但我不知道JDBC4在这方面的支持程度。