Salut,
Tout d'abord, pour mettre une chaîne en majuscules, en Java, c'est un peu près la même chose qu'en SQL : la méthode s'appelle toUpperCase().
Exemple :
1 2 3
| String input = "truc";
String output = input.toUpperCase();
System.out.println( output ) ; |
affiche Ensuite, il suffit d'ajouter un critère SQL à la requête : une clause dans le WHERE combinée avec un AND :
SELECT DISTINCT NAME, TYPE,LINE,TEXT FROM ALL_SOURCE WHERE NAME LIKE 'XX%' AND TYPE = 'TRUC' ORDER BY name ASC, line ASC
Tu pourrais procéder par concaténation, mais il y a mieux en Java : le PreparedStatement. Il est mieux parce qu'il te permet de paramétrer une requête, de te dispenser des spécificités des transformation de type (Java vers SQL), qui peuvent dépendre des différents SGBD, et, empêche, accessoirement l'injection SQL.
Pour créer un PreparedStatement, il suffit d'appeler preparedStatement(sqlQuery), ou sqlQuery est la requête SQL avec des "?" à la place des éléments variables (les valeurs de paramètres). Ainsi, on aurait :
PreparedStatement s2 = connection.prepareStatement("SELECT DISTINCT NAME, TYPE,LINE,TEXT FROM ALL_SOURCE WHERE NAME LIKE 'XX%' AND TYPE = ? ORDER BY name ASC, line ASC");
Ensuite, il suffit de passer la valeur en paramètre :
s2 .setString(1, reponse.toUpperCase());
(Le 1 est le numéro d'index du paramètre dans la requête, 1 pour le premier, 2 pour le second, s'il y'en a 2, etc.)
Puis pour exécuter la requête :
ResultSet r2 = s2.executeQuery();
Partager