web-dev-qa-db-fra.com

Convertir Java.util.List <String> en Java.sql.Array

Comment convertiriez-vous un Java.util.List<String> instance dans un Java.sql.Array?

24
John Jesudason D

Utilisez connection.createArrayOf(...)

Par exemple:

final String[] data = yourList.toArray(new String[yourList.size()]);
final Java.sql.Array sqlArray = connection.createArrayOf(typeName, data);
statement.setArray(position, sqlArray);

Où typeName est:

le nom SQL du type auquel les éléments du tableau mappent. Le typeName est un nom spécifique à la base de données qui peut être le nom d'un type intégré, d'un type défini par l'utilisateur ou d'un type SQL standard pris en charge par cette base de données. Il s'agit de la valeur renvoyée par Array.getBaseTypeName


Comme indiqué dans les commentaires, il s'agit de Java 1.6. Pour les anciennes versions, vous ne pouvez pas créer cela de manière indépendante du pilote. Vous êtes uniquement censé ) get tableaux, pas de les créer. Si vous le souhaitez, vous pouvez instancier la classe d'implémentation à partir de votre pilote jdbc, mais ce n'est pas portable.

33
Bozho

L'argument type de createArrayOf est le type d'élément, pas le type de tableau, donc vous voulez probablement quelque chose comme "varchar" ou "text". VARIADIC est un modificateur d'argument de fonction, pas un spécificateur de type.

1
Kris Jurka