Bonjour,
Je crois que l'intitulé résume mon poste. En effet j'ai besoin de convertir une ArrayList en Array afin de l’utiliser avec l'instruction IN qu'une requête SQL.
Merci d'avance.
Bonjour,
Je crois que l'intitulé résume mon poste. En effet j'ai besoin de convertir une ArrayList en Array afin de l’utiliser avec l'instruction IN qu'une requête SQL.
Merci d'avance.
java.sql.Array est une interface donc on ne peut pas l'instancier.
On peut récupérer un tableau à partir d'un objet Array récupéré de la base avec ResultSet.getArray("colonneArray") l'inverse me parait bizarre.
Tu fais quoi exactement pour faire ton IN?
Salut,
J'imagine ce que tu veux faire : passer par un preparedStatement et lui filer le tableau sql via setArray(Array array).
C'est pas conseillé car même si ça marche, tu auras un code java dépendant du sgbd et des drivers que tu utilises.
Si le tableau est à taille variable, je générerais ma requête sql à la volée en itérerant sur chaque objet de la liste. Avec des preparedStatement,tu n'échaperas pas aux concaténations de chaines et le cache servirait pas non plus à grand chose puisque le preparedStatement serait recompilé autant de fois que d'appels avec un nombre de param différent pour le in.
Si le tableau est de taille fixe, je trouve par contre le preparedstatement plus lisible :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 PreparedStatement stmt = conn.prepareStatement( "select * from matable where id in (?, ?, ?)"); stmt.setInt(1); stmt.setInt(2); stmt.setInt(3);
Merci pour les réponses.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager