IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JDBC Java Discussion :

Requete SQL en JAVA


Sujet :

JDBC Java

  1. #21
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 70
    Points : 30
    Points
    30
    Par défaut
    salut
    ça ce que je vais faire juste que je vois pas ce que je vais mettre à la place de tadate et taproblematique ?????

  2. #22
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 70
    Points : 30
    Points
    30
    Par défaut
    Salut



    libuma

    voila le code que j'ai fait mais j'ai un presque tous les types (setDate, setString, setDecimal, setInt) soulignés en rouge avec des crois rouge

    regarde les photos en pièce jointe

    merci
    Images attachées Images attachées   

  3. #23
    Rédacteur
    Avatar de darrylsite
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    1 299
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 299
    Points : 2 501
    Points
    2 501
    Par défaut
    Citation Envoyé par patriot Voir le message
    Salut



    libuma

    voila le code que j'ai fait mais j'ai un presque tous les types (setDate, setString, setDecimal, setInt) soulignés en rouge avec des crois rouge

    regarde les photos en pièce jointe

    merci
    Il te faut mettre les types qu'il faut. Les champs que tu recupere des champs de texte sont des String. Il faut les convertir en int ou en Date avant d'appeler les methodes setXxx.
    Pour information, dans les méthodes setXxx(n, date); le n represente la position du parametre (representé par le ?) dans la requete.

    sinon avant de t'habituer aux preparedStatement, tu peux essayer la requete
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    String sql= "insert into Interventioninter (DATE_ENTREE, DATE_INTERINT, DATE_FACTURATION, DATE_SORTIE, PROBLEMATIQUE, DESCRIPTION, COUT, MODE_PAIEMENT, INTSTATUT, N_CLIENT) values ('"+Denter.getText()+"', '"+Dateinter.getText()+"', '"+Dfacture.getText()+"', '"+Dsortie.getText()+"', '"+Pb.getText()+"', '"+Descrip.getText()+"', "+Ct.getText()+", '"+val1+"', '"+val2+"', "+Rclient.Nmclient+") where N_CLIENT="+Rclient.Nmclient;
    Comme je te l'ai dit, si une requete ne marche pas, tu fais un println dans la console et tu examine la requete pour savoir ce qui cloche.

  4. #24
    Membre actif
    Inscrit en
    Février 2008
    Messages
    457
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 457
    Points : 215
    Points
    215
    Par défaut
    Citation Envoyé par patriot Voir le message
    Salut

    libuma: pour

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    statement.setDate(1,taDate);
    statement.setString(5,taProblematique);
    qu'est ce que je dois mettre à la place de tadate et taproblèmatique ??? le champs de saisi de ces varialbes ('"+Denter.getText()+"') ou autre choses.

    une autre question pour la commande suivante statement.setDate(1,taDate); t'as mis 1 alors le 1 dans ma table correspond à N_INTERINT par contre la première date commence à paritr du deuxième champs

    merci d'avance
    Il faut que tu arrives à comprendre le pourquoi des " + variable + " etc..
    Tu dois penser à faire correspondre le type de tes champs que ce soit en java ou dans ta table.

    En ce qui concerne le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    statement.setDate(1,taDate);
    le "1" correspond au premier "?" dans ma requête préparée et non au premier champs de ta table !

    Ensuite, tu dois faire correspondre les types.
    Si tu veux insérer un élément dans un champs VARCHAR, tu dois faire un setString.
    Dans un champs INT,NUMBER => setInt
    Dans un champs Date => setDate
    ...

    Dans ce cas ci, t'es "+ champs.getText() + " ne servent à rien, tu l'utilisais pour insérer le contenu d'un champs dans une chaîne de caractère. Tu utilisais donc la concaténation.
    Dans notre cas, tu dois juste introduire, s'il s'agit d'un String
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    statement.setString(5,Pb.getText());
    Pour une date, c'est plus compliqué, tu dois bien faire correspondre le format que tu utilises sous java au format que ta table (db) attend.

  5. #25
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 70
    Points : 30
    Points
    30
    Par défaut
    salut tout le monde

    depuis hier je travaille sur ce que vous m'avez, certes j'ai fait un progres mais pas ce que je veux exactement bon je m'explique. comme je vous disais il me reste pour finaliser mon projet que seule requete d'insertion mais mon objectif c'est d'utiliser cette requete d'insertion dans deux classe, une pour l'ajout des interventions internes et l'autre pour des interventions externes. alors en utilisant le code des interventions internes j'ai fait le code suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
    		     	String Denter;
    		     	String Dateinter;
    		     	String Dfacture;
    		     	String Dsortie;
    		     	Date Cdenter=(Date);
    		     	Date Cdateinter=(Date);
    		     	Date Cdfacture=(Date);
    		     	Date Cdsortie=(Date);
    		     	PreparedStatement statement = (PreparedStatement) con.prepareStatement("insert into Interventioninter (DATE_ENTREE, DATE_INTERINT, DATE_FACTURATION, DATE_SORTIE, PROBLEMATIQUE, DESCRIPTION, COUT, MODE_PAIEMENT, INTSTATUT, N_CLIENT) values (?,?,?,?,?,?,?,?,?,?)");
     
    		     	                         statement.setDate(1,Cdenter);
    		     			statement.setDate(2,Cdateinter);
    		     			statement.setDate(3,Cdfacture);
    		     			statement.setDate(4,Cdsortie);
    		     			statement.setString(5,Pb.getText());
    		     			statement.setString(6,Descrip.getText());
    		     			statement.setString(7,Ct.getText());
    		     			statement.setString(8,val1);
    		     			statement.setString(9,val2);
    		     			statement.setString(10,Rclient.Nmclient);
    		     			int resultat1 = statement.executeUpdate();
    		     			 if(resultat1>0)
    		     			 JOptionPane.showMessageDialog(null,"Intervention créée avec succes" );

    j'ai bien le message comme quoi l'ajout a été bien effectué, alors quand je cherche dans la base je trouve toutes les datas qui j'ai ajouté dans bien là sauf que dans les champs des dates j'ai des valeurs null chose que je comprend pas. bon je veux attirer votre attention qu'ecplise m'ajouter la commande suivante au debut de mon code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    	protected static final Date Date = null;
    alors pour les intervention externe j'ai bien le message que l'lintervention a ete créée mais quand je vérifie dans la base je ne trouve aucune data poutant le code c'est le meme.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    	String Dateinter;
    		     	String Dfacture;
    		     	Date Cdateinter=(Date);
    		     	Date Cdfacture=(Date);
    		     	PreparedStatement statement = (PreparedStatement) con.prepareStatement("insert into Interventioninter (DATE_INTERINT, DATE_FACTURATION, PROBLEMATIQUE, DESCRIPTION, COUT, MODE_PAIEMENT, INTSTATUT, N_CLIENT) values (?,?,?,?,?,?,?,?)");
     
    		     			statement.setDate(1,Cdateinter);
    		     			statement.setDate(2,Cdfacture);
    		     			statement.setString(3,Pb.getText());
    		     			statement.setString(4,Descrip.getText());
    		     			statement.setString(5,Ct.getText());
    		     			statement.setString(6,val1);
    		     			statement.setString(7,val2);
    		     			statement.setString(8,Rclient.Nmclient);
    		     			int resultat1 = statement.executeUpdate();
    		     			 if(resultat1>0)
    		     			 JOptionPane.showMessageDialog(null,"Intervention créée avec succes" );

    je vous laisse aussi le code sql de la création de mes tables.


    Création de la table Interventioninter
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CREATE TABLE Interventioninter (N_INTERINT  INT(5)  AUTO_INCREMENT  PRIMARY KEY, DATE_ENTREE DATE, DATE_INTERINT DATE, DATE_FACTURATION DATE, DATE_SORTIE DATE, PROBLEMATIQUE VARCHAR(40), DESCRIPTION LONGTEXT, COUT DECIMAL(6,2), MODE_PAIEMENT VARCHAR(20), INTSTATUT VARCHAR(20), N_CLIENT  INT(5)) ;


    Création de la table Interventionexter
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CREATE TABLE Interventionexter (N_INTEREXT  INT(5)  AUTO_INCREMENT  PRIMARY KEY, DATE_INTEREXT DATE, DATE_FACTURATION DATE, PROBLEMATIQUE VARCHAR(40), DESCRIPTION LONGTEXT, COUT DECIMAL(6,2), MODE_PAIEMENT VARCHAR(20), EXTSTATUT VARCHAR(20), N_CLIENT  INT(5)) ;

    merci d'avance

  6. #26
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    tu les initialise comment tes Objets Date?

  7. #27
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 70
    Points : 30
    Points
    30
    Par défaut
    Salut

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    tu les initialise comment tes Objets Date?
    désolé j'ai pas compris ce que tu voulais dire mais si tu veux dire si j'ai initialisé les champs de date beh j'ai fait ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
       	String Denter;
    		     	String Dateinter;
    		     	String Dfacture;
    		     	String Dsortie;
    		     	Date Cdenter=(Date);
    		     	Date Cdateinter=(Date);
    		     	Date Cdfacture=(Date);
    		     	Date Cdsortie=(Date);
    		     	Cdenter= null;
    		     	Cdateinter=null;
    		     	Cdfacture=null;
    		     	Cdsortie=null;
    mais n'a pas resolu le problème

    thanks

  8. #28
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    heu4
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
                     Date Cdenter=(Date);
                     Date Cdateinter=(Date);
                     Date Cdfacture=(Date);
                     Date Cdsortie=(Date);
    Ca compile ça? Si tu ne met rien dans tes Cdateinter etc, forcément, tu ne va rien mettre dans la base de donnée :/

  9. #29
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 70
    Points : 30
    Points
    30
    Par défaut
    Salut

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Ca compile ça? Si tu ne met rien dans tes Cdateinter etc, forcément, tu ne va rien mettre dans la base de donnée :/
    oui ça compile, alors qu'est ce que tu veux que je mette la-dans ????

  10. #30
    Rédacteur
    Avatar de darrylsite
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    1 299
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 299
    Points : 2 501
    Points
    2 501
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    heu4
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
                     Date Cdenter=(Date);
                     Date Cdateinter=(Date);
                     Date Cdfacture=(Date);
                     Date Cdsortie=(Date);
    Ca compile ça? Si tu ne met rien dans tes Cdateinter etc, forcément, tu ne va rien mettre dans la base de donnée :/
    Oui ça compile

    Sinon Date n'est pas initialisé c'est pourquoi tu as null dans la base de données.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
      Calendar date = Calendar.getInstance();
      Date Cdenter= date.getTime();
      Date Cdateinter= date.getTime();
      Date Cdfacture= date.getTime();
      Date Cdsortie= date.getTime();
    Si tes champs de texte sont dans un format du genre jj/mm/aaaa, tu peux utiliser le code suivant pour la date.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     Calendar date=Calendar.getInstance(); 
     String[] dateStr= txtBox.getText().split("/"); // JTextField txtBox;
     date.set(Integer.parseInt(dateStr[2]), Integer.parseInt(dateStr[1]), Integer.parseInt(dateStr[0])); 
    Date Cdenter= date.getTime();
      Date Cdateinter= date.getTime();
      Date Cdfacture= date.getTime();
      Date Cdsortie= date.getTime();
    Sinon juste pour comprendre, quand tu utilise le suivant, tu t'attends à quel résultat?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Date Cdenter=Date;
    Cdenter= null;

  11. #31
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Citation Envoyé par patriot Voir le message

    oui ça compile, alors qu'est ce que tu veux que je mette la-dans ????
    Ben les valeur que tu veux stocker

Discussions similaires

  1. Problème Requete SQL en Java
    Par zeratec dans le forum JDBC
    Réponses: 1
    Dernier message: 31/03/2015, 13h38
  2. Réponses: 3
    Dernier message: 28/01/2014, 11h57
  3. Execution requete SQL en JAVA
    Par absot dans le forum Général Java
    Réponses: 7
    Dernier message: 17/02/2010, 22h28
  4. Réponses: 4
    Dernier message: 25/05/2009, 15h44
  5. Connection et requete sql avec java
    Par martos dans le forum NetBeans
    Réponses: 8
    Dernier message: 28/08/2007, 21h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo