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 :

Probléme insertion données


Sujet :

JDBC Java

  1. #1
    Futur Membre du Club
    Inscrit en
    Avril 2009
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 12
    Points : 5
    Points
    5
    Par défaut Probléme insertion données
    Bonjour ,
    J'ai developpé une application java - Jdbc esl la suivante :

    Au debut cette fenetre s'affiche:


    puis je clique sur ajout temperatue



    lorsque je clique sur ok pour ajouter ces infos à la table temperature , ce message d'erreur apparait


    ...................................................
    code bouton ok:

    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    private JButton getJButtonFichetempOk() {
    		if (jButtonFichetempOk == null) {
    			jButtonFichetempOk = new JButton();
    			jButtonFichetempOk.setBounds(new Rectangle(200, 570, 100, 20));
    			jButtonFichetempOk.setText("OK");
     
     
     
     
    			jButtonFichetempOk.addActionListener(new java.awt.event.ActionListener() {
    				public void actionPerformed(java.awt.event.ActionEvent e) {
                                        if (jFrameFichetemp.getMode() == 1)
     
    					try {
     
     
                 boolean stat1=true;
     
                 String combo_pat  =  Integer.toString(jComboBoxPatienttemp.getSelectedIndex());
                 String Mes  =  jTextFieldFichetempMes.getText();
                 String date = jTextFieldFichetempDate.getText(); 
                 String min = jTextFieldtempMin.getText(); 
                 String max = jTextFieldtempMax.getText();
                 String moy = jTextFieldtempMoy.getText();
                 String comm = jTextPaneFichetempCommentaire.getText();
                 String st = Boolean.toString(stat1);
                 double Mes_doub = Double.parseDouble(Mes);
                 double Min_doub = Double.parseDouble(min);
                 double Max_doub = Double.parseDouble(max);
     
     
                                if (Mes_doub >Max_doub  || Mes_doub < Min_doub) 
                                   stat1 = false;
                               else stat1 = true;
     
     
     
     
    						temp.AjoutTemperature(combo_pat, Mes,st, date, min, max, moy,comm);
    code de la methode ajout temperature:
    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
    25
    public boolean AjoutTemperature(String id_pat, 
    			String mes,String st, String date, String min, String max,
                            String moy, String comm) throws azmedException
    	{
    		String maxid = null;
                    String stat = null;
     
    		try {
    		Statement s = con.createStatement();
    		ResultSet rs = s.executeQuery("SELECT max(id_temperature)+1 AS \"MAX\" FROM temperature");
     
    		while (rs.next())
    		maxid = rs.getObject("MAX").toString();
    		s.executeUpdate("INSERT INTO temperature(id_temperature, id_patient, mesure ,statuspatient, date_prelevement, mintemp, maxtemp,moytemp,commentaire)" +
    				" VALUES(\"" + maxid + "\", \"" + id_pat + "\", \"" + mes + "\"" +
    						",\"" + st + "\",\"" + date + "\",\"" + min + "\",\"" + max + "\",\"" + moy + "\",\"" + comm + "\")");
    		s.close();
    		}
    		catch (SQLException e)
    		{
    			System.out.println("Error: cannot add temperature.");
    			throw new azmedException("Error: cannot add temperature.",e);
    		}
    		return true;
    	}
    avec ma table temperature est la suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    create table TEMPERATURE
    (
       ID_TEMPERATURE                         int                            not null,
       ID_PATIENT                     int,
       MESURE           double                  ,
       STATUSPATIENT                         boolean                           not null,
       DATE_PRELEVEMENT               date                           not null,
       MINTEMP                 double                            not null,
       MAXTEMP                 double                           not null,
       MOYTEMP                 double                           not null,
       COMMENTAIRE                    varchar(512)                   not null,
       primary key (ID_TEMPERATURE)
    )
    J'ai besoin de votre aide et merci d'avance.

  2. #2
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2008
    Messages
    380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Octobre 2008
    Messages : 380
    Points : 480
    Points
    480
    Par défaut
    Bonjour,

    Le champ STATUSPATIENT de ta table est de type boolean, et dans la requête tu passes une chaîne de caractères.

    Cette chaine est trop grande pour 'rentrer' dans le type boolean de la base de données.
    Je pense qu'il faut que tu regardes comment insérer une valeur booléenne dans une table MySQL.

  3. #3
    Futur Membre du Club
    Inscrit en
    Avril 2009
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 12
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par eric39 Voir le message
    Bonjour,

    Le champ STATUSPATIENT de ta table est de type boolean, et dans la requête tu passes une chaîne de caractères.

    Cette chaine est trop grande pour 'rentrer' dans le type boolean de la base de données.
    Je pense qu'il faut que tu regardes comment insérer une valeur booléenne dans une table MySQL.
    J'ai essayé de le modifier en booléen mais la même problème.

  4. #4
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2008
    Messages
    380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Octobre 2008
    Messages : 380
    Points : 480
    Points
    480
    Par défaut
    As tu essayé dans la requête SQL de mettre 0->false, 1-> true, je crois que MySQL mappe les boolean sur 0 et 1.
    Est ce cela que tu as essayé?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    s.executeUpdate("INSERT INTO temperature(id_temperature, id_patient, mesure ,statuspatient, date_prelevement, mintemp, maxtemp,moytemp,commentaire)" +
    " VALUES(\"" + maxid + "\", \"" + id_pat + "\", \"" + mes + "\"" +
    ",\"" + "1" + "\",\"" + date + "\",\"" + min + "\",\"" + max + "\",\"" + moy + "\",\"" + comm + "\")");

  5. #5
    Futur Membre du Club
    Inscrit en
    Avril 2009
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 12
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par eric39 Voir le message
    As tu essayé dans la requête SQL de mettre 0->false, 1-> true, je crois que MySQL mappe les boolean sur 0 et 1.
    Est ce cela que tu as essayé?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    s.executeUpdate("INSERT INTO temperature(id_temperature, id_patient, mesure ,statuspatient, date_prelevement, mintemp, maxtemp,moytemp,commentaire)" +
    " VALUES(\"" + maxid + "\", \"" + id_pat + "\", \"" + mes + "\"" +
    ",\"" + "1" + "\",\"" + date + "\",\"" + min + "\",\"" + max + "\",\"" + moy + "\",\"" + comm + "\")");
    dans ce cas statuspatient prend toujours la valeur true

  6. #6
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2008
    Messages
    380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Octobre 2008
    Messages : 380
    Points : 480
    Points
    480
    Par défaut
    Oui, effectivement!!!

    Mais ce que je voulais dire, c'est qu'il faut lui passer une valeur ("0" ou "1"), mais pas une chaine de caractères dans le genre "true" ou "false" comme tu le faisais au début.

    Le "1" était là en exemple, il faut que la valeur arrive en paramètre comme tu l'avait fait.

  7. #7
    Futur Membre du Club
    Inscrit en
    Avril 2009
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 12
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par eric39 Voir le message
    Oui, effectivement!!!

    Mais ce que je voulais dire, c'est qu'il faut lui passer une valeur ("0" ou "1"), mais pas une chaine de caractères dans le genre "true" ou "false" comme tu le faisais au début.

    Le "1" était là en exemple, il faut que la valeur arrive en paramètre comme tu l'avait fait.
    les paramétres d'une requête sql peut être définis comme étant String
    c'est pas le probléme au niveau de syntaxe mais au niveau de code java .
    je souhoite que tu me comprends bien mon ami
    cordialement.

  8. #8
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2008
    Messages
    380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Octobre 2008
    Messages : 380
    Points : 480
    Points
    480
    Par défaut
    Moi oui je comprend bien.

    Mais vu le message d'erreur et vue ce que tu met dans la requête.
    Comme je te l'ai expliqué: Remplacer tes "true" et "false" par des "1" et "0" corrige ton problème.

    Est ce que tu as essayé ce que je t'ai proposé, parce que c'est la solution la plus simple. En même temps tu fais bien comme tu veux!!!

  9. #9
    Membre régulier Avatar de mitnick2006
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2006
    Messages
    163
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Maroc

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2006
    Messages : 163
    Points : 106
    Points
    106
    Par défaut Boolean ou Varchar !
    Citation Envoyé par eric39 Voir le message
    Moi oui je comprend bien.

    Mais vu le message d'erreur et vue ce que tu met dans la requête.
    Comme je te l'ai expliqué: Remplacer tes "true" et "false" par des "1" et "0" corrige ton problème.
    salut je suis tous d'accord avec eric39 , si tu veux garder ton champ dans la base de type booléen donc il faut passer 0 ou 1 dans la requête d'insertion sinon si tu préfères travailler avec les chaines de caractères ("true" ou "false") changer le type de ton champ à Varchar.
    Knoweledge Is Power In Digital World

Discussions similaires

  1. [MySQL] Problème insertion données dans la table
    Par michgoarin dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 28/12/2014, 00h08
  2. Problème insertion données JDBC
    Par kenda10 dans le forum JDBC
    Réponses: 4
    Dernier message: 18/09/2012, 20h31
  3. Problème insertion données arabe dans Oracle
    Par harakat21 dans le forum Oracle
    Réponses: 2
    Dernier message: 24/08/2011, 11h56
  4. [MySQL] problème insertion donnée dans une table
    Par thebestxav dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 30/04/2011, 20h01
  5. [SQL] Problème insertion de données
    Par griese dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 28/06/2006, 12h09

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