我有一个字符串列表,我想将其设置为预备句中的参数。这里的问题和答案使它看起来很简单:
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()?