Подтвердить что ты не робот

Преобразовать java.util.List <String> в java.sql.Array

Как бы вы преобразовали экземпляр java.util.List<String> в java.sql.Array?

4b9b3361

Ответ 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 - это модификатор аргумента функции, а не спецификатор типа.