Как бы вы преобразовали экземпляр java.util.List<String>
в java.sql.Array
?
Преобразовать java.util.List <String> в java.sql.Array
Ответ 1
Используйте 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-типа, к которому относятся элементы массива. ТипName - это имя базы данных, которое может быть именем встроенного типа, пользовательского типа или стандартного типа SQL, поддерживаемого этой базой данных. Это значение, возвращаемое Array.getBaseTypeName
Как отмечается в комментариях, это Java 1.6. Для более старых версий вы не можете создать это независимым от водителя способом. Вы должны только получать массивы, а не создавать их. Если вы хотите, вы можете создать экземпляр класса реализации из вашего драйвера jdbc, но это не переносится.
Ответ 2
Аргумент type для createArrayOf - это тип элемента, а не тип массива, поэтому вы, вероятно, хотите что-то вроде "varchar" или "text". VARIADIC - это модификатор аргумента функции, а не спецификатор типа.