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 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
|
public DAOResult listePourCG(String strListCG, String strIDCG) {
Map<String, Object> namedParameters = new HashMap<String, Object>();
namedParameters.put("strIDCG", strIDCG);
namedParameters.put("strListCG", strListCG);
//exemple strIDCG=5 et strListCG=1,2,3,4,5,6,..
//erreur car strListCG est considéré comme une seule
//valeur map(Key, value) en plus un string
String strSQL = "SELECT 'X' AS RESU FROM CG WHERE "
+ ":strIDCG" + " IN (" + ": strListCG" + ")";
return query(strSQL, namedParameters);
//1 ier Sol passer la chaine en dur dans la requete
public DAOResult listePourCG(String strListCG, String strIDCG) {
Map<String, Object> namedParameters = new HashMap<String, Object>();
namedParameters.put("strIDCG", strIDCG);
String strSQL = "SELECT 'X' AS RESU FROM CG WHERE "
+ ":strIDCG" + " IN (" +strListCG+ ")";
return query(strSQL, namedParameters);
2 iem solution
public DAOResult listePourCG(String strListCG, String strIDCG) {
Map<String, Object> namedParameters = new HashMap<String, Object>();
namedParameters.put("strIDCG", strIDCG);
List<String> strIDCGList = new ArrayList<String>();
StringTokenizer st = new StringTokenizer(strListCG, ",");
while (st.hasMoreTokens()) {
strIDCGList.add(st.nextToken());
}
//passage de la liste de valeur de la chaine comme une liste.
namedParameters.put("strIDCGList", strIDCGList);
String strSQL = "SELECT 'X' AS RESU FROM CG WHERE "
+ ":strIDCG" + " IN (" +strListCG+ ")";
return query(strSQL, namedParameters); |
Partager