Преобразуйте java.util. Список <Строка> в java.sql. Массив

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

23
задан Dave Jarvis 15 October 2010 в 17:13
поделиться

2 ответа

Используйте 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, но это непереносимо.

32
ответ дан 29 November 2019 в 02:27
поделиться

Аргумент типа для createArrayOf - это тип элемента, а не тип массива, поэтому вы, вероятно, захотите что-то вроде «varchar» или «text». VARIADIC - это модификатор аргумента функции, а не спецификатор типа.

1
ответ дан 29 November 2019 в 02:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: