[clos] aide code

Résolu/Fermé
cs_Stoufy1605 Messages postés 61 Date d'inscription vendredi 7 janvier 2011 Statut Membre Dernière intervention 17 avril 2013 - 12 août 2012 à 23:23
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 - 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

4 réponses

cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
13 août 2012 à 14:10
Je clos ce sujet, étant donné que nous en discutons déjà ici : http://www.javafr.com/forum/sujet-PROJET_1604483.aspx#7
3
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
13 août 2012 à 08:58
Salut,

Peux tu m'indiquer la ligne qui lève l'exception ?
0
cs_laurent1024 Messages postés 987 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 30 août 2012 25
13 août 2012 à 09:34
Bonjour.
ça peut venir de là je pense :
Article obj = null;				confirmerLArticle.create(obj);
0
cs_Stoufy1605 Messages postés 61 Date d'inscription vendredi 7 janvier 2011 Statut Membre Dernière intervention 17 avril 2013 2
13 août 2012 à 12:16
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);
0
Rejoignez-nous