Page d'accueilFindIt !Contact Cahier Java

Cahier Java

 Forum Java

Ce forum est dédié à l'ouvrage Bien programmer en Java 7, ainsi qu'aux éditions précédentes des Cahiers du Programmeur Java.
Utilisez-le pour toute demande d'information supplémentaire ou pour toute suggestion au sujet de ces ouvrages.
Pour les informations relatives au Cahier du programmeur Swing, merci d'utiliser le forum qui lui est dédié.
Vous pouvez consulter ces forums librement. Pour y participer, inscrivez-vous tout d'abord.

Sujets Messages récents Identification Inscription
Messages du sujet Probleme de requete

nicotine02

Membre depuis : 28 déc. 2005
Messages : 1
 28 déc. 2005 à 18:28
Bonjour,
Voilà j'ai crée une requete sql en java et je voudrais savoir comment y insérer une variable, exemple :
String requete_Jour = "SELECT * FROM Vente WHERE Date LIKE '25/12/05'";
Et à la place du '25/12/05' je voudrais faire un truc du genre:
String text = '25/12/05";
String requete_Jour = "SELECT * FROM Vente WHERE Date LIKE "+ text;
Mais ca marche pas:(
Merci d'avance.

Manu

Ville : Paris / France
Membre depuis : 29 avr. 2003
Messages : 394
 29 déc. 2005 à 10:51
Il faut faire apparaître les apostrophes ou les guillemets dans la requête finale, ce qui donne pour les apostrophes :
  String requete_Jour = "SELECT * FROM Vente WHERE Date LIKE '"+ text + "'";
et pour les guillemets :
  String requete_Jour = "SELECT * FROM Vente WHERE Date LIKE \""+ text + "\"";

Attention ! Si votre champ Date dans la table Vente est de type SQL DATE, je ne pense pas que l'opérateur LIKE puisse fonctionner ; utilisez alors l'opérateur =. Mais vu le format de date que vous utilisez, ce champ est probablement une chaîne de caractères.

Pour terminer, essayez d'utiliser les instructions précompilées pour ce type de requêtes (voir pages 232 et suivantes), elles vous permettront d'avoir une code un plus long mais plus simple. Votre exemple :
  String text = '25/12/05";
  String requete_Jour = "SELECT * FROM Vente WHERE Date LIKE '"+ text + "'";
  Statement st = connexion.createStatement ();
  ResultSet res = st.executeQuery (requete_Jour);
  // ...

deviendra alors :
  String text = '25/12/05";
  String requete_Jour = "SELECT * FROM Vente WHERE Date LIKE ?";
  PreparedStatement st = connexion.prepareStatement (requete_Jour);
  st.setString(1, text); // Attribution au 1er point d'interrogation de la valeur de text
  ResultSet res = st.executeQuery ();
  // ...

---
Manu (moderator/modérateur)


Page d'accueilFindIt !ContactDébut de la page

© Copyrights 1997-2014 eTeks - Tous droits réservés

Cahier Java