hsqldb.jdbc returns 中的 createArrayOf 字符串 AbstractMethodError
createArrayOf string in hsqldb.jdbc returns AbstractMethodError
我正在为使用 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
行。
我一直没能找到解决这个问题的方法。将不胜感激任何帮助。谢谢
在 class JDBCConnection
(实现 java.sql.Connection
)的 official HSQLDB JavaDoc(版本 2.x)中,createArrayOf
方法可用并记录在案:
createArrayOf
public Array createArrayOf(String typeName,
Object[] elements)
throws SQLException
从 HSQLDB 版本 2.x 开始支持此方法。因此,您应该更新您的应用程序以使用最新的 HSQLDB 驱动程序,它可以是 downloaded here。
根据 changelist,作为开发团队“Connection#createArrayOf”方法的固定类型限制,您应该至少使用 2.2.1 版的 HSQLDB 驱动程序有了这个版本。
HSQLDB 中的 SQL 查询语法不同:
SELECT * from TABLE WHERE id IN(UNNEST(?))
我正在为使用 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
行。
我一直没能找到解决这个问题的方法。将不胜感激任何帮助。谢谢
在 class JDBCConnection
(实现 java.sql.Connection
)的 official HSQLDB JavaDoc(版本 2.x)中,createArrayOf
方法可用并记录在案:
createArrayOf
public Array createArrayOf(String typeName, Object[] elements) throws SQLException
从 HSQLDB 版本 2.x 开始支持此方法。因此,您应该更新您的应用程序以使用最新的 HSQLDB 驱动程序,它可以是 downloaded here。
根据 changelist,作为开发团队“Connection#createArrayOf”方法的固定类型限制,您应该至少使用 2.2.1 版的 HSQLDB 驱动程序有了这个版本。
HSQLDB 中的 SQL 查询语法不同:
SELECT * from TABLE WHERE id IN(UNNEST(?))