2010-05-21 14 views

risposta

27

Uso connection.createArrayOf(...)

Ad esempio:

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

Dove typeName è:

il nome SQL del tipo degli elementi della mappa array. TypeName è un nome specifico del database che può essere il nome di un tipo predefinito, un tipo definito dall'utente o un tipo SQL standard supportato da questo database. Questo è il valore restituito da Array.getBaseTypeName


Come notato nei commenti, questo è Java 1.6. Per le versioni precedenti non è possibile creare questo in modo indipendente dal driver. Si suppone che si debbano solo ottenere gli array, non crearli. Se lo desideri, puoi istanziare la classe di implementazione dal tuo driver jdbc, ma questo non è portabile.

+0

Da java 1.6 ... – pgras

+1

che è il _current_ Java. Se il suo è inferiore, avrebbe dovuto dirlo. – Bozho

+0

sì hai ragione riguardo la versione di java, ho appena scritto il mio commento perché ho provato a cercare il metodo nel mio javadoc con segnalibro con è per 1.5 (come è la versione che devo usare) ... – pgras

1

L'argomento type per createArrayOf è il tipo di elemento, non il tipo di matrice, quindi probabilmente si desidera qualcosa come "varchar" o "text". VARIADIC è un modificatore di argomenti di funzione, non un identificatore di tipo.

Problemi correlati