在preparedstatement中设置Array,抛出java.sql.SQLFeatureNotSupportedException

时间:2016-03-29 11:16:20

标签: arrays sql-server jdbc prepared-statement

我有一个字符串列表,我想将其设置为预备句中的参数。这里的问题和答案使它看起来很简单:

How to use an arraylist as a prepared statement parameter

嗯,不是很容易。仍然有一个List转换为SQL-Array,我发现最容易通过在它们之间创建一个String []。

以下是我的代码:

PreparedStatement s = con.prepareStatement("SELECT  * FROM Table WHERE Country IN ? ");

String[] countryArray = new String[countryListObject.size()];
countryArray = countryListObject.toArray(countryArray);

Array cArray = con.createArrayOf("VARCHAR", countryArray); //<--- Throws the exception
s.setArray(1, cArray);

This answer似乎解决了类似的问题,但我无法理解这有助于解决任何问题。答案充其量是暧昧的,只说明:

  

基本上你想做的事情不是直接使用a   的PreparedStatement。

我已经从API文档中了解到,如果JDBC驱动程序不支持此方法,则抛出此异常。我正在运行com.microsoft.sqlserver sqljdbc4 3.0版。我试图看看哪些版本支持setArray,但是我找不到这些信息。它可能就在我面前,但我真的很感激对此有所帮助。

如何确定我的JDBC是否支持setArray()?

0 个答案:

没有答案