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 :

[Debutante] Ajouter les infos saisies dans les champs dans une BDD


Sujet :

JDBC Java

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    296
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 296
    Points : 73
    Points
    73
    Par défaut [Debutante] Ajouter les infos saisies dans les champs dans une BDD
    salut à tous,
    Je fais une application qui doit me permettre de mettre les informations saisies par une personne dans une BDD mysql aprés avoir cliquer sur un bouton ok.
    Le code que j'ai fais, j'ai des erreurs.
    Aidez moi svp.
    le code est:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    private void okActionPerformed(java.awt.event.ActionEvent evt) throws Exception {
    	 		String Enseignant = Nom_Enseignant.getText();
    			String module = Module.getText();
    			int EtatP = Integer.parseInt(Etat_paiement.getText());
    			Date dateActuelle = new Date();
    			int hp = Integer.parseInt(Heures_prevues.getText());
    			int he = Integer.parseInt(Heures_effectuees.getText());
    			m.AjoutS(Enseignant, module, EtatP , dateActuelle, hp, he);
    	 	}
    La méthode AjoutS permet d'ajouter un service.
    Merci d'avance

  2. #2
    Membre éclairé
    Avatar de sironimo
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    669
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Mai 2004
    Messages : 669
    Points : 756
    Points
    756
    Par défaut
    Avant de nous montrer le code, dis-nous en un peu plus sur tes erreurs.
    "Le calendrier, c'est la bureaucratie du temps." Quino

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    296
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 296
    Points : 73
    Points
    73
    Par défaut
    Désolée j'avais oublié:

    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
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    java.lang.Exception: Connexion non initialisée
    	at my_sql.Mysql.query(Mysql.java:79)
    	at my_sql.Mysql.AjoutS(Mysql.java:204)
    	at fr.istase.stats.extraction.Ihm.okActionPerformed(Ihm.java:388)
    	at fr.istase.stats.extraction.Ihm.access$5(Ihm.java:378)
    	at fr.istase.stats.extraction.Ihm$8.actionPerformed(Ihm.java:205)
    	at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
    	at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
    	at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
    	at javax.swing.DefaultButtonModel.setPressed(Unknown Source)Connexion reussie
     
    	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
    	at java.awt.Component.processMouseEvent(Unknown Source)
    	at javax.swing.JComponent.processMouseEvent(Unknown Source)
    	at java.awt.Component.processEvent(Unknown Source)
    	at java.awt.Container.processEvent(Unknown Source)
    	at java.awt.Component.dispatchEventImpl(Unknown Source)
    	at java.awt.Container.dispatchEventImpl(Unknown Source)
    	at java.awt.Component.dispatchEvent(Unknown Source)
    	at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
    	at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
    	at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
    	at java.awt.Container.dispatchEventImpl(Unknown Source)
    	at java.awt.Window.dispatchEventImpl(Unknown Source)
    	at java.awt.Component.dispatchEvent(Unknown Source)
    	at java.awt.EventQueue.dispatchEvent(Unknown Source)
    	at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)
    	at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    	at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    	at java.awt.Dialog$1.run(Unknown Source)
    	at java.awt.Dialog.show(Unknown Source)
    	at java.awt.Component.show(Unknown Source)
    	at java.awt.Component.setVisible(Unknown Source)
    	at fr.istase.stats.extraction.Ihm.AjouterSActionPerformed(Ihm.java:270)
    	at fr.istase.stats.extraction.Ihm.access$4(Ihm.java:193)
    	at fr.istase.stats.extraction.Ihm$5.actionPerformed(Ihm.java:131)
    	at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
    	at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
    	at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
    	at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
    	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
    	at java.awt.Component.processMouseEvent(Unknown Source)
    	at javax.swing.JComponent.processMouseEvent(Unknown Source)
    	at java.awt.Component.processEvent(Unknown Source)
    	at java.awt.Container.processEvent(Unknown Source)
    	at java.awt.Component.dispatchEventImpl(Unknown Source)
    	at java.awt.Container.dispatchEventImpl(Unknown Source)
    	at java.awt.Component.dispatchEvent(Unknown Source)
    	at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
    	at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
    	at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
    	at java.awt.Container.dispatchEventImpl(Unknown Source)
    	at java.awt.Window.dispatchEventImpl(Unknown Source)
    	at java.awt.Component.dispatchEvent(Unknown Source)
    	at java.awt.EventQueue.dispatchEvent(Unknown Source)
    	at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)
    	at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    	at java.awt.EventDispatchThread.run(Unknown Source)

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    296
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 296
    Points : 73
    Points
    73
    Par défaut
    Le code de la méthode pour ajouter un service est :
    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
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    public void AjoutS(String Enseignant,String module,int EtatP,Date dateActuelle,int hp,int he) throws Exception
    	{
     
    		//utilisation un PreparedStatement avec la méthode setDate,
    		//cela permet d'être indépendant du format fixé par la base de données
    		int HeuresCM=0;
    		int HeuresTD = 0;
    		int HeuresTP = 0;
    		dateActuelle= new Date();//	création d'un objet date
    		Mysql ms = new Mysql();
    		ms.Connect("syllabus");
     
    //		vérification qu'on ne met pas plus d'heures de services que ce qui est prévu
     
    		//Recuperer heures TD, TP, CM depuis la base Syllabus 
     
    		String requete1="Select HeuresTP,HeuresTD,HeuresCM From modules Where CodeMCC = '"+module+"'";
     
    		//Execution requete
    		try
    		{
    			query(requete1);			
    			while(rs.next())
    			{
    				//print the values for the current row.
    				 HeuresTD = rs.getInt("HeuresTD");
    				HeuresCM = rs.getInt("HeuresCM");
    				HeuresTP = rs.getInt("HeuresTP");
    				System.out.println("ROW = " + HeuresTD + " " + HeuresCM + " " +HeuresTP);
    			}
    			ms.Deconnect();
     
    		}
    		catch(SQLException e)
    		{
    			//System.out.println("Probleme execution de la requete");
    			e.printStackTrace();
    		}
     
    		//TRaimteent resultat
    		//Convetir en heur TD => Heures max du module(1)
    		int HenTd=0;
     
    		HenTd= (int) (HeuresTD + (1.5*HeuresCM)+(0.66*HeuresTP));
     
    		System.out.println (HenTd);
     
    		//Recuperer heur Td affecte au modules depuis la base sevices(2)
    		int nbE  = 0;
    		Mysql mq = new Mysql();
    		mq.Connect("services");
    		String requete2 = "SELECT sum(NbHeuresPrevues) FROM services " +
    		  "WHERE Module='"+module+"'";
    		try
    		{
    			query(requete2);			
    			while(rs.next())
    			{
    				//print the values for the current row.
    				 nbE = rs.getInt("sum(NbHeuresPrevues)");
    				System.out.println(nbE);
    			}
     
    		}
    		catch(SQLException e)
    		{
    			//System.out.println("Probleme execution de la requete");
    			e.printStackTrace();
    		}
     
    		int n = nbE+hp;
    		System.out.println(n);
     
    	   //Verifier que heures existantes(2) + hp =< heures bases(1)
    		if (n <= HenTd ) 
     
    		{
     
    		String requete3="INSERT INTO services(NomEnseignant,Module,EtatPaiement,DateMaj,NbHeuresPrevues,NbHeuresEffectuees) VALUES(?,?,?,?,?,?)";
     
            try
            {
            	st = conn.prepareStatement(requete3);
            	//insertion des élements de la requete
            	st.setString(1,Enseignant);
            	st.setString(2,module);
            	st.setInt(3,EtatP);
            	st.setDate(4,new java.sql.Date(dateActuelle.getTime()));//mise a jour de la date courante
            	st.setInt(5,hp);
            	st.setInt(6,he);
     
            	st.executeUpdate();//execution de l'instruction du Statement
            	System.out.println(nbE+hp);
            }
            catch(SQLException e)
            {
            	JOptionPane.showMessageDialog(null,"vous avez dépassé le nombre d'heures autorisées ou le service existe déjà :" + e.getMessage() );
            	//System.out.println(nbE+hp);
     
            }
            finally 
            {   
            	st.close();//fermeture du Statement   
            }
    		}
    		else
            {
    			try
    	        {
    				st.close();
    	        }
    			catch(SQLException e)
    	        {
    	        	JOptionPane.showMessageDialog(null,"vous avez dépassé le nombre d'heures autorisées ou le service existe déjà :" + e.getMessage() );
    	        	//System.out.println(nbE+hp);
     
    	        }
            }
    	}
    et la méthode avec laquelle j'exécute mes requetes est:

    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
    public ResultSet query(String requete)
    	{
    		if (conn == null)
    			try {
    				throw new Exception("Connexion non initialisée");
    			} catch (Exception e) {
    				e.printStackTrace();
    			}
    		rs = null;
    		try {
    			stat = conn.createStatement();
    			rs = stat.executeQuery(requete);
    		} catch (SQLException sqle) {
    			System.out.println("Erreur SQL dans l'execution de la requete");
    		}
    		return rs;
    	}
    La ligne 79 est : Et d'aprés les erreurs, je vois qu'il ne connecte pas à la premiére table par contre, il se connecte à la deuxiéme
    Je ne comprend pas pourquoi?

  5. #5
    Membre confirmé Avatar de schniouf
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2003
    Messages : 382
    Points : 474
    Points
    474
    Par défaut
    Avec un peu de jugeotte, tu aurais vu que l'exception lancée, c'est toi qui la lançait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    java.lang.Exception: Connexion non initialisée
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if (conn == null)
    	try {
    		throw new Exception("Connexion non initialisée");
    	} catch (Exception e) {
    		e.printStackTrace();
    	}
    Ca veut dire que conn vaut null... un peu de réflexion avant de poster ne fait pas de mal, tu sais !

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    296
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 296
    Points : 73
    Points
    73
    Par défaut
    j'ai changé le code et j'ai la même erreur
    Le nouveau code est:
    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
     
    //Recuperer heures TD, TP, CM depuis la base Syllabus 
     
    		String requete1="Select HeuresTP,HeuresTD,HeuresCM From modules Where CodeMCC = '"+module+"'";
     
    		//Execution requete
    		try
    		{
                           //c'est la ligne que j'ai changé
    			rs=stat.executeQuery(requete1);	
    			while(rs.next())
    			{
    				//print the values for the current row.
    				 HeuresTD = rs.getInt("HeuresTD");
    				HeuresCM = rs.getInt("HeuresCM");
    				HeuresTP = rs.getInt("HeuresTP");
    				System.out.println("ROW = " + HeuresTD + " " + HeuresCM + " " +HeuresTP);
    			}
    			ms.Deconnect();
     
    		}
    l'erreur est:
    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
    Connexion reussie
    java.lang.NullPointerException
    	at my_sql.Mysql.AjoutS(Mysql.java:204)
    	at fr.istase.stats.extraction.Ihm.okActionPerformed(Ihm.java:388)
    	at fr.istase.stats.extraction.Ihm.access$5(Ihm.java:378)
    	at fr.istase.stats.extraction.Ihm$8.actionPerformed(Ihm.java:205)
    	at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
    	at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
    	at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
    	at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
    	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
    	at java.awt.Component.processMouseEvent(Unknown Source)
    	at javax.swing.JComponent.processMouseEvent(Unknown Source)
    	at java.awt.Component.processEvent(Unknown Source)
    	at java.awt.Container.processEvent(Unknown Source)
    	at java.awt.Component.dispatchEventImpl(Unknown Source)
    	at java.awt.Container.dispatchEventImpl(Unknown Source)
    	at java.awt.Component.dispatchEvent(Unknown Source)
    	at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
    	at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
    	at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
    	at java.awt.Container.dispatchEventImpl(Unknown Source)
    	at java.awt.Window.dispatchEventImpl(Unknown Source)
    	at java.awt.Component.dispatchEvent(Unknown Source)
    	at java.awt.EventQueue.dispatchEvent(Unknown Source)
    	at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)
    	at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    	at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    	at java.awt.Dialog$1.run(Unknown Source)
    	at java.awt.Dialog.show(Unknown Source)
    	at java.awt.Component.show(Unknown Source)
    La ligne 204 est:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    rs=stat.executeQuery(requete1);

  7. #7
    Membre confirmé Avatar de schniouf
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2003
    Messages : 382
    Points : 474
    Points
    474
    Par défaut
    NullPointerException signifie qu'un objet vaut null, et que tu as essayé d'accéder à un attribut ou une méthode de cet objet. Donc ici, il y a fort à parier que quand tu fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    rs=stat.executeQuery(requete1);
    stat vaut null.
    Avant de poster sur le forum, renseigne toi un peu plus sur le Java ! On n'est pas des débuggers qui avons que ça à faire de nos journées

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    296
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 296
    Points : 73
    Points
    73
    Par défaut
    De 1 ,si j'ai posté c'est que j'ai pas pu résoudre le problème
    De 2, je n'ai jamais fais du java
    De 3, c'est mon premier projet
    Et de 4, quand je poste, je n'oblige pas les gens à me répondre...

  9. #9
    Nouveau membre du Club
    Inscrit en
    Février 2007
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 26
    Points : 37
    Points
    37
    Par défaut
    Essaie plutot :

    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
                 public ResultSet query(String requete)
    	{
    		if (conn == null)
    			try {
    				throw new Exception("Connexion non initialisée");
    			} catch (Exception e) {
    				e.printStackTrace();
    			}
    		rs = null;
    		try {
    			stat = conn.prepareStatement(requete);
    			rs = stat.executeQuery();
    		} catch (SQLException sqle) {
    			System.out.println("Erreur SQL dans l'execution de la requete");
    		}
    		return rs;
    	}

  10. #10
    Membre confirmé Avatar de schniouf
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2003
    Messages : 382
    Points : 474
    Points
    474
    Par défaut
    Citation Envoyé par mariafan
    De 1 ,si j'ai posté c'est que j'ai pas pu résoudre le problème
    De 2, je n'ai jamais fais du java
    De 3, c'est mon premier projet
    Et de 4, quand je poste, je n'oblige pas les gens à me répondre...
    Ne prend pas mal ce que je t'ai dit !

    Cherche "NullPointerException" dans google, et tu obtiens 2 310 000 résultats, dont le 1er (la javadoc) qui dit : "Thrown when an application attempts to use null in a case where an object is required." Ca, ça t'aurais fait comprendre ton erreur.

Discussions similaires

  1. Réponses: 2
    Dernier message: 14/07/2011, 13h19
  2. Réponses: 1
    Dernier message: 04/07/2011, 21h35
  3. Injecter le resultat d'un champs dans le champs d'une autre fenêtre
    Par sandddy dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 02/10/2009, 10h10
  4. [SQL] Compteur de saisies dans des champs d'une BDD
    Par guillaumeIOB dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 28/02/2007, 13h54
  5. Réponses: 2
    Dernier message: 03/02/2007, 15h35

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