【发布时间】:2016-03-11 11:47:08
【问题描述】:
我正在为与 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 线上。
我无法找到解决此问题的方法。将不胜感激任何帮助。谢谢
【问题讨论】:
-
您使用的是什么版本的 HSQLDB?
createArrayOf(String typeName, Object[] elements)方法是在 Java 1.6(或 JDBC 4)中添加的,所以看起来你的 HSQLDB 版本没有实现 JDBC 4。 -
我的版本是
1.8.0.9。我正在使用它,因为我们的 Spring 版本是3.1.1,那是当时使用的 HSQLDB 版本。我应该升级看看吗? -
据我所知,HSQLDB 1.8.x 仅支持(部分)JDBC 3。最新的是2.3.3,但我不知道其中对JDBC 4 的支持程度。