Récupéré des données dans un JTable [Résolu]

cs_Stoufy1605 61 Messages postés vendredi 7 janvier 2011Date d'inscription 17 avril 2013 Dernière intervention - 20 août 2012 à 14:12 - Dernière réponse : cs_Julien39 6450 Messages postés mardi 8 mars 2005Date d'inscription 17 mai 2018 Dernière intervention
- 29 août 2012 à 13:53
Bonjour à la communauté code source!!!!!

Voilà, je crée un projet pour mes cours, et j'ai un minuscule soucis. Pour expliqué en gros, je dois récupéré des données d'une base de donnée et les envoyé dans une JTable. J'ai donc créer une méthode qui renvoie une méthode qui renvoie un tableau, cette méthode récupère donc des données de ma base de donnée et les insèrent dans un tableau, ensuite ce tableau est renvoyé dans une classe fenêtre (qui fait partie de mon interface graphique), seulement malgré le fait que j'ai fait l'import de ma classe contenant ma méthode renvoyant mon tableau, eclipse ne l'accepte pas.

voici le code de ma méthode renvoyant un tableau :
public Object [] tableauDesDonnees()
        
       {
        	Object[][] tableauDesDonnees = null;
       try {
    	   
    	   Statement state  = this.connect.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
    	   String requete = "SELECT * FROM journaliste";
    	   ResultSet result = state.executeQuery(requete);
    	  ResultSetMetaData meta = result.getMetaData(); 
    	   result.last();
    	   int row = result.getRow();
    	   Object [][]data =  new Object [result.getRow()] [((ResultSetMetaData) result).getColumnCount()];
    	   result.beforeFirst();
    	   int j= 1;
    	   while (result.next())
    	   {
    		   for(int i = 1; i<= meta.getColumnCount();i++)
    		   {
    			   data [j-1][i-1] = result.getObject(i);
    			   j++;
    		   }
    	   }
    	   
       }
       catch (SQLException e)
       {
    	   e.printStackTrace();
       }
       
       return tableauDesDonnees;
       } 
        


voici le code de ma fenêtre contenant ma JTable :
fenetre.getContentPane().add(internalFrame);


Object[][] data ={{tableauDesDonnees}};

String [] nomDesColonnes = {"Nom","Prenom","Agence","EMAIL","ID"};

JTable tableau = new JTable(data, nomDesColonnes);
internalFrame.getContentPane().add(new JScrollPane(tableau));




cette ligne-ci pose problème :
Object[][] data ={{tableauDesDonnees}};


Je suis conscient du fait que l'objet "data" ne doit prendre qu'un objet (dans ce cas-ci) String(et non pas une méthode), cependant je ne vois pas trop comment je pourrais faire pour arranger le problème.
Merci d'avance à la communauté code-source!!!!!
Afficher la suite 

Votre réponse

21 réponses

Meilleure réponse
cs_Julien39 6450 Messages postés mardi 8 mars 2005Date d'inscription 17 mai 2018 Dernière intervention - 20 août 2012 à 14:35
3
Merci
Salut,

Commence par remplacer : public Object [] tableauDesDonnees() par
public Object[][] tableauDesDonnees()


Tu pourras alors faire
Object[][] data = tableauDesDonnees();

Merci cs_Julien39 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 96 internautes ce mois-ci

Commenter la réponse de cs_Julien39
Meilleure réponse
cs_Julien39 6450 Messages postés mardi 8 mars 2005Date d'inscription 17 mai 2018 Dernière intervention - 20 août 2012 à 14:37
3
Merci
Mais bon, je trouve que la méthode n'est pas extra. C'est assez systématique, les gens pensent qu'il est plus pratique d'avoir un tableau avec les données de la base. La resultset est un objet plus adapté.

Le mieux est de se servir de la resultset pour reconstruire des objets métier.

Merci cs_Julien39 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 96 internautes ce mois-ci

Commenter la réponse de cs_Julien39
Meilleure réponse
cs_Stoufy1605 61 Messages postés vendredi 7 janvier 2011Date d'inscription 17 avril 2013 Dernière intervention - 21 août 2012 à 02:44
3
Merci
Bonjour Maître!!!!(et non j'ai pas oublié!!!)

 public Object [][] tableauDesDonnees()
        
       {
        	Object[][] tableauDesDonnees = null;
       try {
    	   
    	   Statement state  = this.connect.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
    	   String requete = "SELECT * FROM journaliste";
    	   ResultSet result = state.executeQuery(requete);
    	  ResultSetMetaData meta = result.getMetaData(); 
    	   result.last();
    	   int row = result.getRow();
    	   Object [][]data =  new Object [result.getRow()] [((ResultSetMetaData) result).getColumnCount()];
    	   result.beforeFirst();
    	   int j= 1;
    	   while (result.next())
    	   {
    		   for(int i = 1; i<= meta.getColumnCount();i++)
    		   {
    			   data [j-1][i-1] = result.getObject(i);
    			   j++;
    		   }
    	   }
    	   
       }
       catch (SQLException e)
       {
    	   e.printStackTrace();
       }
       
       return tableauDesDonnees;
       } 
        



internalFrame.setClosable(true);
internalFrame.setMaximizable(true);
internalFrame.setIconifiable(true);
internalFrame.setBounds(50, 43, 265, 255);
fenetre.getContentPane().add(internalFrame);


Object[][] data =tableauDesDonnees();

String [] nomDesColonnes = {"Nom","Prenom","Agence","EMAIL","ID"};

JTable tableau = new JTable(data, nomDesColonnes);
internalFrame.getContentPane().add(new JScrollPane(tableau));

internalFrame.setVisible(true);
nouvelArticle.setBounds(31, 32, 305, 318);


J'ai fait les modifications demandées, effectivement de ce côté, il y avait une erreur, cependant cela renvoit toujours une erreur à la même ligne :
Object[][] data =tableauDesDonnees();


Aurais-tu une autre erreur à déceler. Je pense que l'objet data ne peut pas prendre de méthode comme composant, cependant je ne vois pas du tout comment faire.

Merci cs_Stoufy1605 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 96 internautes ce mois-ci

Commenter la réponse de cs_Stoufy1605
Meilleure réponse
cs_Julien39 6450 Messages postés mardi 8 mars 2005Date d'inscription 17 mai 2018 Dernière intervention - 21 août 2012 à 09:00
3
Merci
Ce n'est pas la méthode qui est utilisée pour créer data mais c'est le résultat de cette méthode. Tu es bien dans la même classe ?

Sinon, c'est que tu dois attacher ta méthode tableauDesDonnees() à une instance de la classe qui contient la méthode. Ou alors, utilises une méthode static.

Si ce n'est pas ça, c'est quoi le message d'erreur ?

Merci cs_Julien39 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 96 internautes ce mois-ci

Commenter la réponse de cs_Julien39
Meilleure réponse
cs_Stoufy1605 61 Messages postés vendredi 7 janvier 2011Date d'inscription 17 avril 2013 Dernière intervention - 21 août 2012 à 13:00
3
Merci
Voici l'erreur :

The method tableauDesDonnees() is undefined for the type fenetre

Donc si je comprends bien l'erreur, je voulais essayer de rajouter un argument à mon type fenêtre, mais cela ne vas pas non plus. J'ai essayer ta solution mais cela ne fonctionne pas non plus.

La méthode déclaré en static ne vas pas.

Pour répondre à ta question, je ne suis pas dans la même classe, ma classe fenêtre fait partie d'une classe qui n'instancie que la partie swing, par contre la méthode
public Object [][] tableauDesDonnees()

fait partie d'une classe appelée "DAOJournaliste", j'ai fait les import nécessaires à savoir "import DAOJournaliste;", et puis de toute façon dans ma classe fenêtre, j'utilise d'autres méthodes qui fonctionnent venant de la classe "DAOJournaliste", cela veut donc dire que l'erreur ne se situe pas là. J'avais pensé à éventuellement récupéré les résultats de ma méthode dans un tableau (encore un) mémoire déclaré dans ma classe fenetre, mais cela ne va pas non plus. Voilà en tout cas les résultats de ma réflexion, n'aboutissant pas.

Merci cs_Stoufy1605 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 96 internautes ce mois-ci

Commenter la réponse de cs_Stoufy1605
Meilleure réponse
cs_Julien39 6450 Messages postés mardi 8 mars 2005Date d'inscription 17 mai 2018 Dernière intervention - 21 août 2012 à 13:54
3
Merci
Tu as écris ce code dans une classe fenetre :
internalFrame.setClosable(true);
internalFrame.setMaximizable(true);
internalFrame.setIconifiable(true);
internalFrame.setBounds(50, 43, 265, 255);
fenetre.getContentPane().add(internalFrame);


Object[][] data =tableauDesDonnees();

String [] nomDesColonnes = {"Nom","Prenom","Agence","EMAIL","ID"};

JTable tableau = new JTable(data, nomDesColonnes);
internalFrame.getContentPane().add(new JScrollPane(tableau));

internalFrame.setVisible(true);
nouvelArticle.setBounds(31, 32, 305, 318);


La méthode que tu cherches à appeler (tableauDesDonnees) est dans la classe DAOJournaliste.

Donc, soit tu vas un
Object[][] data = new DAOJournaliste().tableauDesDonnees();


Soit tu passes la méthode tableauDesDonnees en static et tu fais
Object[][] data = DAOJournaliste.tableauDesDonnees();

Merci cs_Julien39 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 96 internautes ce mois-ci

Commenter la réponse de cs_Julien39
Meilleure réponse
cs_Stoufy1605 61 Messages postés vendredi 7 janvier 2011Date d'inscription 17 avril 2013 Dernière intervention - 21 août 2012 à 22:43
3
Merci
J'ai essayer les deux solutions, cela ne résoud pas le problème, il me renvoit un java null poniter exception

Merci cs_Stoufy1605 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 96 internautes ce mois-ci

Commenter la réponse de cs_Stoufy1605
Meilleure réponse
cs_Julien39 6450 Messages postés mardi 8 mars 2005Date d'inscription 17 mai 2018 Dernière intervention - 22 août 2012 à 09:30
3
Merci
NullPointerException c'est un autre problème mais on progresse,

Object[][] tableauDesDonnees = null; instancie ton objet à null.

La dernière ligne :

return tableauDesDonnees;

Donc, tu retournes null, ce qui n'est pas ce que tu souhaites... Il faut que tu retournes data en réalité :

public Object [][] tableauDesDonnees()
        
       {
        	Object[][] data = null;
       try {
    	   
    	   Statement state  = this.connect.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
    	   String requete = "SELECT * FROM journaliste";
    	   ResultSet result = state.executeQuery(requete);
    	  ResultSetMetaData meta = result.getMetaData(); 
    	   result.last();
    	   int row = result.getRow();
    	   data =  new Object [result.getRow()] [((ResultSetMetaData) result).getColumnCount()];
    	   result.beforeFirst();
    	   int j= 1;
    	   while (result.next())
    	   {
    		   for(int i = 1; i<= meta.getColumnCount();i++)
    		   {
    			   data [j-1][i-1] = result.getObject(i);
    			   j++;
    		   }
    	   }
    	   
       }
       catch (SQLException e)
       {
    	   e.printStackTrace();
       }
       
       return tableauDesDonnees;
       } 

Merci cs_Julien39 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 96 internautes ce mois-ci

Commenter la réponse de cs_Julien39
Meilleure réponse
cs_Stoufy1605 61 Messages postés vendredi 7 janvier 2011Date d'inscription 17 avril 2013 Dernière intervention - 22 août 2012 à 21:22
3
Merci
PREMIERE HYPOTHESE :Je suppose que tu as voulu dire dans ce cas "return data;" et non pas "return tableauDesDonnees", si jai bien compris ton explication.
Dans ce cas-ci, il me renvoie une erreur à cette ligne :

Object[][] data = new DAOJournaliste().tableauDesDonnees();


il me dit qu'il faut ajouter des arguments à la ligne DAOJournaliste, j'ai donc ajouter ces arguments :
Object[][] data = new DAOJournaliste(null, null, null, null, 0).tableauDesDonnees();


Les 4 premiers "null" sont de type String, le "0" est de type int, selon ma logique si je dois ajouter des arguments à DAOJournaliste, si il sont null, cela n'est pas très grave car j'applique la méthode renvoyant un tableau et donc l tableau n'est pas vide. Cependant, une erreur se lève alors de type "java.lang.ClassCastException: org.postgresql.jdbc4.Jdbc4ResultSet cannot be cast to java.sql.ResultSetMetaData", et la ligne qui pose probème alors est :
data =  new Object [result.getRow()] [((ResultSetMetaData) result).getColumnCount()];


DEUXIEME HYPOTHESE : J'ai laissé ce code tel quel (en reprenant le "return tableauDesDonnees();"), et dans c cas le résultat est le même : je dois rajouter des arguments à DAOJournaliste que je fais de la même manière que dans ma première hypothèse (null, null,null, null,0) et il me renvoit la même erreur à savoir :
"java.lang.ClassCastException: org.postgresql.jdbc4.Jdbc4ResultSet cannot be cast to java.sql.ResultSetMetaData"

je suis vraiment désolé(je m'en veux de ne pas trouver la solution par moi même) et je te remercie du fond du coeur pour ton aide)

Merci cs_Stoufy1605 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 96 internautes ce mois-ci

Commenter la réponse de cs_Stoufy1605
Meilleure réponse
cs_Julien39 6450 Messages postés mardi 8 mars 2005Date d'inscription 17 mai 2018 Dernière intervention - 23 août 2012 à 08:30
3
Merci
Oui, il fallait bien utiliser un return data.

Tu réutilises un code que tu n'as pas écrit toi même, j'ai l'impression que je le maîtrises pas du tout son architecture.

Dans le constructeur de DAOJournaliste, quel sont les attributs ? Peux tu me copier le code. Mais, je pense que null et 0 ne sont pas forcément des valeurs très adaptées. Tu peux utiliser dans ce cas une méthode static de façon à ne pas appeler le constructeur.

Effectivement, si ton but est d'utiliser la méthode, tu peux passer null et 0 mais c'est un peu brouillon.

Cette ligne ne va pas :
((ResultSetMetaData) result)


Je pense que tu ne connais pas le fonctionnement du cast, ce n'est pas une conversion, il faut que l'objet ait le bon type en mémoire.

Essayes :
result.getMetaData().getColumnCount()

Merci cs_Julien39 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 96 internautes ce mois-ci

Commenter la réponse de cs_Julien39
Meilleure réponse
cs_Stoufy1605 61 Messages postés vendredi 7 janvier 2011Date d'inscription 17 avril 2013 Dernière intervention - 24 août 2012 à 01:34
3
Merci
Oups, désolé!!! l'erreur que j'ai mis précédamment était une petite erreur de ma part (je n'avais pas mis les bons arguments) en réalité il me renvoie un java null pointer exception, avec un retour erreur à

Statement state  = connect.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);


Les attributs de DAOJournaliste sont :

public class DAOJournaliste extends DAO<Journaliste1>{

public DAOJournaliste(String nom, String prenom, String agence, String email, int id) {
    	if(connect==null)
    		connect = DAOConnexion.getConnexion();
}


Ma méthode de programmation a été la suivante: 4 packages = interface graphique, DAO, POJO, pogramme. Pour la méthode de renvoie des données : J'ai donc un menu qui appelle une JInternalFrame qui renvoie un JTable qui devrait contenir les données de ma base. Ces données sont envoyés par l'intermédiaire de la classe DAOJournaliste qui pour le moment est la suivante :

 public  static Object [][] tableauDesDonnees()
        
       {
        	Object[][] data = null;
       try {
    	   
    	   Statement state  = connect.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
    	   String requete = "SELECT * FROM journaliste";
    	   ResultSet result = state.executeQuery(requete);
    	  ResultSetMetaData meta = result.getMetaData(); 
    	   result.last();
    	   int row = result.getRow();
    	   data =  new Object [result.getRow()] [((ResultSetMetaData) result).getColumnCount()];
    	   result.beforeFirst();
    	   int j= 1;
    	   while (result.next())
    	   {
    		   for(int i = 1; i<= meta.getColumnCount();i++)
    		   {
    			   data [j-1][i-1] = result.getObject(i);
    			   j++;
    		   }
    	   }
    	   
       }
       catch (SQLException e)
       {
    	   e.printStackTrace();
       }
       
       return data;
       } 
        
    

Le code de mon interface graphique est la suivante =

internalFrame.setClosable(true);
internalFrame.setMaximizable(true);
internalFrame.setIconifiable(true);
internalFrame.setBounds(325, 283, 265, 255);
fenetre.getContentPane().add(internalFrame);


Object[][] data = DAOJournaliste.tableauDesDonnees();
String [] nomDesColonnes = {"Nom","Prenom","Agence","EMAIL","ID"};

JTable tableau = new JTable(data, nomDesColonnes);
tableau.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
internalFrame.getContentPane().add(new JScrollPane(tableau));



Dans ma base de données il y a des données(ce que je veux dire par là c'est que mes tables ne sont pas vides) !

Merci cs_Stoufy1605 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 96 internautes ce mois-ci

Commenter la réponse de cs_Stoufy1605
Meilleure réponse
cs_Julien39 6450 Messages postés mardi 8 mars 2005Date d'inscription 17 mai 2018 Dernière intervention - 24 août 2012 à 08:42
3
Merci
Je pense que connect est null, essayes de faire un System.out.println(connect); avant la ligne

Statement state  = connect.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);

pour vérifier.

Si c'est le cas, c'est ta méthode DAOConnexion.getConnexion() qui ne va pas.

Merci cs_Julien39 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 96 internautes ce mois-ci

Commenter la réponse de cs_Julien39
Meilleure réponse
cs_Stoufy1605 61 Messages postés vendredi 7 janvier 2011Date d'inscription 17 avril 2013 Dernière intervention - 25 août 2012 à 17:44
3
Merci
Ma connexion s'établit parfaitement, le problème n'est donc pas là!
De toute façon, les autres requêtes de mon programme fonctionnent,j'ai utilisé la même classe DAOConnexion, dnc si il y avait une erreur à ce niveau, il aurait renvoyé également une erreur.

Merci cs_Stoufy1605 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 96 internautes ce mois-ci

Commenter la réponse de cs_Stoufy1605
Meilleure réponse
cs_Julien39 6450 Messages postés mardi 8 mars 2005Date d'inscription 17 mai 2018 Dernière intervention - 27 août 2012 à 09:03
3
Merci
Essayes de placer un sysout de cette manière :
Sytem.out.println("Connexion:"connect);
Statement state  = connect.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);


Et dis moi ce que tu obtiens...

Merci cs_Julien39 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 96 internautes ce mois-ci

Commenter la réponse de cs_Julien39
Meilleure réponse
cs_Stoufy1605 61 Messages postés vendredi 7 janvier 2011Date d'inscription 17 avril 2013 Dernière intervention - 28 août 2012 à 18:07
3
Merci
Bonjour,

Voici ce qu'il me renvoie, je suis désolé j'ai été pris par d'autres examens.


Connexion:null
java.lang.NullPointerException
at be.steve.DAO.DAOJournaliste.tableauDesDonnees(DAOJournaliste.java:134)
at interfaceGraphique.fenetre.initialize(fenetre.java:196)
at interfaceGraphique.fenetre.(fenetre.java:93)
at interfaceGraphique.fenetre$1.run(fenetre.java:78)
at java.awt.event.InvocationEvent.dispatch(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.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)
Merci beaucoup.

Merci cs_Stoufy1605 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 96 internautes ce mois-ci

Commenter la réponse de cs_Stoufy1605
Meilleure réponse
cs_Stoufy1605 61 Messages postés vendredi 7 janvier 2011Date d'inscription 17 avril 2013 Dernière intervention - 28 août 2012 à 18:12
3
Merci
Donc tu avais tout à fait raison, mon connect est null, comment faire pour arranger le problème?

Voici mon code de ma DAOConnexion =
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;	
}	
}

Et ce que je ne comprends pas non plus c'et comment cela se passe que lorsque j'exécute la méthode "create", cela fonctionne normalement.

Merci cs_Stoufy1605 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 96 internautes ce mois-ci

Commenter la réponse de cs_Stoufy1605
Meilleure réponse
cs_Julien39 6450 Messages postés mardi 8 mars 2005Date d'inscription 17 mai 2018 Dernière intervention - 29 août 2012 à 08:43
3
Merci
Connexion:null

J'ai vu ton erreur : a chaque fois que tu fais un new DAOConnexion, un nouvel objet est créé. Il ne suffit donc pas d'appeler le constructeur pour instancier la connexion sur une autre instance de ta classe.

if(connexion == null){
new DAOConnexion();//Créé une nouvelle instance de la classe qui ne sert à rien
}


Je te conseil de créer une classe :

public class ConnexionPostgresql {

   private static final ConnexionPostgresql instance = new ConnexionPostgresql();

   private final String URL = "jdbc:postgresql://localhost:5432/GestionJournal";
   private final String USER = "postgres";
   private final String PASSWD = "190707190707";
   
   private Connexion connexion;
   
   private ConnexionPostgresql(){
      connexion = DriverManager.getConnection(URL, USER, PASSWD);
   }

   public void getConnexion(){
      return connexion;
   }

   public static ConnexionPostgresql getInstance(){
      return instance;
   }


}


De cette manière, tu initialises une fois pour toute ta connexion, et quand tu en as besoin, tu fais :
ConnexionPostgresql.getInstance().getConnexion()

Merci cs_Julien39 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 96 internautes ce mois-ci

Commenter la réponse de cs_Julien39
Meilleure réponse
cs_Julien39 6450 Messages postés mardi 8 mars 2005Date d'inscription 17 mai 2018 Dernière intervention - 29 août 2012 à 08:44
3
Merci
Pardon, j'ai commis une petite erreur dans le code que je t'ai donné, utilises celui ci :

public class ConnexionPostgresql {

   private static final ConnexionPostgresql instance = new ConnexionPostgresql();

   private final String URL = "jdbc:postgresql://localhost:5432/GestionJournal";
   private final String USER = "postgres";
   private final String PASSWD = "190707190707";
   
   private Connexion connexion;
   
   private ConnexionPostgresql(){
      connexion = DriverManager.getConnection(URL, USER, PASSWD);
   }

   public Connexion getConnexion(){
      return connexion;
   }

   public static ConnexionPostgresql getInstance(){
      return instance;
   }


}

Merci cs_Julien39 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 96 internautes ce mois-ci

Commenter la réponse de cs_Julien39
Meilleure réponse
cs_Julien39 6450 Messages postés mardi 8 mars 2005Date d'inscription 17 mai 2018 Dernière intervention - 29 août 2012 à 08:45
3
Merci
Si tu veux traiter proprement l'exception, il faudra la réencapsuler dans un autre type d'exception et la propager, mais si tu ne sais pas comment faire, tu peux te contenter d'un printStackTrace.

Merci cs_Julien39 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 96 internautes ce mois-ci

Commenter la réponse de cs_Julien39
Meilleure réponse
cs_Stoufy1605 61 Messages postés vendredi 7 janvier 2011Date d'inscription 17 avril 2013 Dernière intervention - 29 août 2012 à 12:38
3
Merci
Merci maître!!!!

cela a fonctionné parfaitement!!!! Tu a sauvé mon projet, cela fonctionne maintenant!!! Merci baucoup du fond du coeur pour ton aide!!!

Merci cs_Stoufy1605 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 96 internautes ce mois-ci

Commenter la réponse de cs_Stoufy1605

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.