2010-05-21 17 views

Respuesta

27

Uso connection.createArrayOf(...)

Por ejemplo:

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

Dónde typeName es:

el nombre SQL del tipo los elementos de la matriz de mapa a. El typeName es un nombre específico de la base de datos que puede ser el nombre de un tipo incorporado, un tipo definido por el usuario o un tipo SQL estándar admitido por esta base de datos. Este es el valor devuelto por Array.getBaseTypeName


Como se señaló en los comentarios, esto es Java 1.6. Para versiones anteriores, no puede crear esto de una manera independiente del controlador. Se supone que solo debes obtener matrices, no crearlas. Si lo desea, puede instanciar la clase de implementación desde su controlador jdbc, pero esto no es portátil.

+0

Desde java 1.6 ... – pgras

+1

que es _current_ Java. Si el suyo es más bajo, debería haber dicho eso. – Bozho

+0

sí, tiene razón con respecto a la versión de java, acabo de escribir mi comentario porque traté de buscar el método en mi javadoc marcado con es para 1.5 (ya que es la versión que tengo que usar) ... – pgras

1

El argumento de tipo para createArrayOf es el tipo de elemento, no el tipo de matriz, por lo que probablemente desee algo como "varchar" o "text". VARIADIC es un modificador de argumento de función, no un especificador de tipo.

Cuestiones relacionadas