Конвертировать java.util.List <String>в java.sql.Array - PullRequest
22 голосов
/ 21 мая 2010

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

Ответы [ 2 ]

31 голосов
/ 21 мая 2010

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

1 голос
/ 22 мая 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...