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

时间:2016-03-11 11:47:09

标签: 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);
            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行上

我还没能找到解决这个问题的方法。非常感谢任何帮助。感谢

2 个答案:

答案 0 :(得分:4)

在类JDBCConnection的{​​{3}}(版本2.x)中(实现java.sql.ConnectioncreateArrayOf方法可用并记录在案:

  

createArrayOf

     

public Array createArrayOf(String typeName,                              对象[]元素)                       抛出SQLException

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

根据downloaded here,您应该至少使用版本2.2.1的HSQLDB驱动程序作为此版本的开发团队“ Connection#createArrayOf 的固定类型限制”方法。< / p>

答案 1 :(得分:1)

HSQLDB中的SQL查询语法不同:

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