Как Вы преобразовали бы a java.util.List<String>
экземпляр в a java.sql.Array
?
Используйте connection.createArrayOf (...)
Например:
final String[] data = yourList.toArray(new String[yourList.size()]);
final java.sql.Array sqlArray = connection.createArrayOf(typeName, data);
statement.setArray(position, sqlArray);
Где typeName - это:
имя SQL типа, которому сопоставляются элементы массива. TypeName - это имя, зависящее от базы данных, которое может быть именем встроенного типа, определяемого пользователем типа или стандартного типа SQL, поддерживаемого этой базой данных. Это значение, возвращаемое Array.getBaseTypeName
Как отмечалось в комментариях, это Java 1.6. Для более старых версий вы не можете создать это независимо от драйвера. Вы должны только получать массивы, но не создавать их. Если вы хотите, вы можете создать экземпляр класса реализации из вашего драйвера jdbc, но это непереносимо.
Аргумент типа для createArrayOf - это тип элемента, а не тип массива, поэтому вы, вероятно, захотите что-то вроде «varchar» или «text». VARIADIC - это модификатор аргумента функции, а не спецификатор типа.