我想傳遞一個String數組來一份聲明,但它返回此異常:傳遞一個字符串數組來一份聲明中陣列(JDBC + SQLServer的)
java.sql.SQLFeatureNotSupportedException: This operation is not supported.
at com.microsoft.sqlserver.jdbc.SQLServerConnection.createArrayOf(SQLServerConnection.java:2763)
at entity.dao.getRecords(Dao.java:168)
at entity.dao.main(Dao.java:227)
我的代碼是:
public List<Record> getRecords() throws SQLException {
String sql = "select * from table where clause in (?)";
PreparedStatement ps = this.connection.prepareStatement(sql);
List<String> strings = new ArrayList<>();
strings.add("string1");
strings.add("string2");
strings.add("string3");
Array array = this.connection.createArrayOf("VARCHAR", strings.toArray());
ps.setArray(1, array);
ResultSet executeQuery = ps.executeQuery();
List<Record> records = new ArrayList<Record>();
Record record;
while (executeQuery.next()) {
// ...
}
return records;
}
異常的線是Array array = this.connection.createArrayOf("VARCHAR", strings.toArray());
這是當我嘗試創建陣列。
我已經搜索瞭如何傳遞數組,並且每個人都這樣做,但似乎不適用於SQLServer。
使用此:'ps.setString(1, 「 '逗號', '分開', '價值'」);' –
這個例子只有didatic。在我工作的場景中,我有一百個字符串。 –
@GordThompson這篇文章不談論sql-server。 –