bonjour,
j ai une requete de ce type :
comment on peux alimenter le champs in , en utilisant un vector pour ;)Code:
1
2 select .... from ... where id in (?)
Cordialmen
Version imprimable
bonjour,
j ai une requete de ce type :
comment on peux alimenter le champs in , en utilisant un vector pour ;)Code:
1
2 select .... from ... where id in (?)
Cordialmen
je dis ça au pif mais en créant un String 'val1','val2' ... par exemple. Et apres de faire appel à setString ...
Qu'as tu essayé pour l'instant ?
Quels sont les problèmes que tu rencontre ?
Salut.
La réponse au pif ne marchera pas malheureusement. En effet, Le ? va être remplacé par 'val1', 'val2, 'val3' mais comme par défaut le driver echape les caractères, cela donnera:
Ce qui évidemment n'est pas ce que tu recherche.Code:... IN ('''val1'', ''val2'', ''val3''')
La seulle méthode que je connaisse est celle-ci:
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 // En admettant que tu as tes valeurs dans un object List par exemple List<String> bindVars = new ArrayList<String>(); bindVars.add("val1"); bindVars.add("val2"); ... // tu peux faire ainsi: String sql = "select ... where ... IN ("; // préparation de la requête for ( int i = 0; i < bindVars.size(); i++ ) { if ( i > 0 ) sql += ", "; sql += "?"; } sql += ")"; stmt = conn.preparedStatement(sql); // on bind... for ( int i = 0; i < bindVars.size() ; i++ ) { stmt.setString(i + 1, bindVars.get(i)); } // et on éxécute stmt.execute...
Voilà. Il y a peut-être une autre méthode, mais en tout cas celle-ci marche ;-)
@+