[clos] aide code [Résolu/Fermé]

Messages postés
61
Date d'inscription
vendredi 7 janvier 2011
Statut
Membre
Dernière intervention
17 avril 2013
- - Dernière réponse : cs_Julien39
Messages postés
6413
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
17 mai 2018
- 13 août 2012 à 14:10
Bonjour à toute la communauté de code source, voilà, je développe un projet pour les cours, cela fait plusieurs semaines que je suis occupé à le coder, et là je sèche un petit peu. Ce programme doit interagir avec une base de données pour les opérations standarts ( create,update, delete, show, cependant, je n'arrive pas à trouver l'erreur du code. La connexion à la bdd se passe très bien lorsque je les intègre manuellement, mais lorsque j'essaye de récupéré les informations de mon formulaire (fait avec des JTextField), et les evoyer ensuite vers ma base de données, ccela bloque, mais où et quoi?? ------)mystère.

classe de la fenêtre (partie swing):

fenetre.getContentPane().add(btnBb);


nouvelArticle.setClosable(true);
nouvelArticle.setMaximizable(true);
nouvelArticle.setIconifiable(true);
nouvelArticle.setBounds(10, 11, 286, 238);
nouvelArticle.getContentPane().setLayout(null);

titre2 = new JTextField();
titre2.setBounds(108, 25, 86, 20);
nouvelArticle.getContentPane().add(titre2);
titre2.setColumns(10);

date2 = new JTextField();
date2.setBounds(108, 61, 86, 20);
nouvelArticle.getContentPane().add(date2);
date2.setColumns(10);

fichier2 = new JTextField();
fichier2.setBounds(108, 92, 86, 20);
nouvelArticle.getContentPane().add(fichier2);
fichier2.setColumns(10);

auteur2 = new JTextField();
auteur2.setBounds(108, 123, 86, 20);
nouvelArticle.getContentPane().add(auteur2);
auteur2.setColumns(10);

JButton confirmerArticle = new JButton("Confirmer");
confirmerArticle.setBounds(171, 175, 89, 23);
nouvelArticle.getContentPane().add(confirmerArticle);
confirmerArticle.addActionListener(new ActionListener()
{
@Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
String titre = titre2.getText();
String fichier= fichier2.getText();
String auteur= auteur2.getText();
String date = date2.getText();

DAOArticle confirmerLArticle= new DAOArticle(titre, fichier, auteur,date);
Article obj = null;
confirmerLArticle.create(obj);

}


classe DAO connexion:
public class DAOConnexion{

/*
 * Singleton de connexion
 * 
 * 
 * 
 */


private String url = "jdbc:postgresql://localhost:5432/GestionJournal";
private String user = "postgres";
private String passwd = "190707190707";
private static Connection connexion = null;
//Class.forName("org.postgresql.Driver");
// l'objet est static : il n'en n'existe donc qu'un seul exemplaire, quelque soit le nombre d'objet de la classe.


private DAOConnexion(){
//le constructeur fait la connexion, mais il n'est accessible qu'en interne
try {
connexion = DriverManager.getConnection(url, user, passwd);
//connexion = DriverManager.getConnection(url);
} catch (SQLException e) {
e.printStackTrace();
}
}

public static Connection getConnexion(){
//l'instanciation active le constructeur
if(connexion == null){
new DAOConnexion();
}
return connexion;	
}	
}


classe DAO Article : 
Code Java :
  public boolean create(Article obj) {	
        	
        
        	boolean reponse=false;            
            
        	
            try {
            	Statement state = this.connect.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
            	//Statement state = this.connect.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
            	            	            	
            	// Lorsque j'exécute cette requête cela fonctionne très bien :   
            	//String requete = "INSERT INTO article(titre, fichier,date,id,auteur) VALUES('fdfsdgsd','dfsdfsd','cvvdssdv',3,'dfsdfsdf')";
//Lorsque j'execute celle-ci, plus rien ne fonctionne
            	String requete = "INSERT INTO article(titre, fichier, date,auteur) VALUES('"+obj.getTitre()+"', '"+obj.getFichier()+"', '"+obj.getAuteur()+"', '"+obj.getDate()+"');";

reponse = state.execute(requete);

                   
            } 
            catch (SQLException e) {
                    e.printStackTrace();
            }
           
            return reponse;
        }

classe POJO aticle
public class Article {


private String titre="";
private String date="";
private String fichier="";
private String auteur="";
private int id=0;

private static DAOArticle dao = new DAOArticle();



public Article (String titre, String string, String string2, String requete, int i){

this.id= id;
this.titre=titre;
this.date=date;
this.fichier=fichier;
this.auteur=auteur;

this.dao.create(this);
}


public void setTitre(String titre){
this.titre=titre;

this.dao.update(this);
}


public String getTitre(){
return this.titre;
}

public int getId(){
return this.id;
}


public String getAuteur(){
return this.auteur;
}
public void setAuteur(String auteur)
{
this.auteur=auteur;
this.dao.update(this);
}

public String getFichier(){
return this.fichier;
}
public void setFichier(String fichier)
{
this.fichier=fichier;
this.dao.update(this);
}

public String getDate(){
return this.date;
}
public void setDate(String date)
{
this.date=date;
this.dao.update(this);
}

public boolean find(String titre,String date, String fichier, int id){
dao.find(id, date, fichier, titre);


return false;

}


}



J'ai mis l'ensemble de mon code concernant l'opération create (pour le reste, je pourrai me débrouiller), cependant je e vois vraimnt pas du tout ou se trouve l'erreur.

Donc pour récapituler :
-la connexion se fait sans problème;
-lorsque j'intègre les informtions manuellemnt (directement dans les requêtes), les informations sont intégré dans la BDD.
-ce qui nne fonctionne pas : récupération des informations dans les JTEXFIELDS et les envoyer dans la BDD

Je seche completement HELP.

L'erreur est la suivante :


Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at be.steve.DAO.DAOArticle.create(DAOArticle.java:40)
at interfaceGraphique.fenetre$7.actionPerformed(fenetre.java:211)
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.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$000(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(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)

J'ai fait des requêtes "test", à e niveau cela fonctionne à merveille, mais dès que j souhaite récupéré les valeurs des JTextfield, l'erreur se passe
Afficher la suite 

4 réponses

Meilleure réponse
Messages postés
6413
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
17 mai 2018
248
3
Merci
Je clos ce sujet, étant donné que nous en discutons déjà ici : http://www.javafr.com/forum/sujet-PROJET_1604483.aspx#7

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 206 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_Julien39
Messages postés
6413
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
17 mai 2018
248
0
Merci
Salut,

Peux tu m'indiquer la ligne qui lève l'exception ?
Commenter la réponse de cs_Julien39
Messages postés
987
Date d'inscription
mardi 31 mai 2005
Statut
Membre
Dernière intervention
30 août 2012
11
0
Merci
Bonjour.
ça peut venir de là je pense :
Article obj = null;				confirmerLArticle.create(obj);
Commenter la réponse de cs_laurent1024
Messages postés
61
Date d'inscription
vendredi 7 janvier 2011
Statut
Membre
Dernière intervention
17 avril 2013
1
0
Merci
ok, merci pour vos réponses, et comment corriger l'erreur?

Julien39 :


at be.steve.DAO.DAOArticle.create(DAOArticle.java:40)=
            	String requete = "INSERT INTO article(titre, fichier, date,auteur) VALUES('"+obj.getTitre()+"', '"+obj.getFichier()+"', '"+obj.getAuteur()+"', '"+obj.getDate()+"');";


at interfaceGraphique.fenetre$7.actionPerformed(fenetre.java:211)=

confirmerLArticle.create(obj);
Commenter la réponse de cs_Stoufy1605