Recupérer bd postgresql dans java

Snyve Messages postés 11 Date d'inscription dimanche 4 février 2007 Statut Membre Dernière intervention 31 août 2007 - 29 mars 2007 à 18:38
Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 - 31 mars 2007 à 22:00
Bonjour à tous !

Voilà, j'ai un problème, je n'arrive pas à récupérer les informations de ma base de donnée postgresql dans java.
Je pense que le driver peut être en cause. (car il me dit:
echec pilote : java.lang.ClassNotFoundException: org.postgresql.jdbc.Driver
).
Je l'ai télécharger sur le site de postgresql, mais je ne sais pas très bien où le placer.

Je vous remercie d'avance pour votre aide.

Sinon, voici mon programme:



package testsql;
   
     import java.sql.*;

     class testsql{

     public static void testsql(String[] args){
   
     //Nom de mon pilote
     String pilote = "org.postgresql.Driver";
   
     try{

     Class.forName(pilote);

     Connection connexion = DriverManager.getConnection("jdbc:postgresql:clicom","postgres","postgres");

     Statement instruction = connexion.createStatement();

     ResultSet resultat = instruction.executeQuery("SELECT * FROM client");
     while(resultat.next()){
   
     System.out.println("---------------------------");
     System.out.println("Nom du client: "+resultat.getString("ncli"));
     System.out.println("Nom: "+resultat.getString("nom"));
     System.out.println("adresse: "+resultat.getString("adresse"));
     System.out.println("Ville: "+resultat.getString("ville"));
     System.out.println("Statut: "+resultat.getString("statut"));
   
     }
     }
     catch (Exception e){
   
     System.out.println("echec pilote : "+e);
     }
   
     }
  
}

10 réponses

Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 38
29 mars 2007 à 20:28
Salut:

Comme c'est indiqué dans l'exception (ClassNotFoundException), la JVM n'a pas trouvée le pilote.

Il faut ajouter le connecteur JDBC dans le CLASSPATH lors de la compilation.

Remarque:

Vaut mieux mettre l'initialisation du pilote de la base de données dans un bloc static pour être appelée une et une seule fois.

static {
    try {
        Class.forName ("...");
    }
    catch (ClassNotFoundException e) {
       // Traitement exception
    }
}


________________________________________________________________________________
A.B. : 
"Dieu nous donne des mains, mais il ne bâtit pas les ponts"
0
Snyve Messages postés 11 Date d'inscription dimanche 4 février 2007 Statut Membre Dernière intervention 31 août 2007
29 mars 2007 à 21:14
Merci beaucoup de m'avoir répondu.

Mais lorsque je met le morceau de programme que tu as mis ci-dessus, il me dit qu'il y a un problème avec lestatic (illegal start of expression).

Alors, je ne sais pas si ça ne marche pas ou si je n'ai pas compris ce que tu voulais dire (parce que je suis un débutant en java).
0
Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 38
29 mars 2007 à 21:24
Salut:

public class DataBase {
    static {
       // ...
    }

    public static void main (String [] args) {
       // ...
    }
}


________________________________________________________________________________
A.B. : 
"Dieu nous donne des mains, mais il ne bâtit pas les ponts
0
viphadia Messages postés 25 Date d'inscription dimanche 3 avril 2005 Statut Membre Dernière intervention 13 septembre 2008
30 mars 2007 à 20:59
salut
si un peu prés comme bd mysql je peux vous aider!!!!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Snyve Messages postés 11 Date d'inscription dimanche 4 février 2007 Statut Membre Dernière intervention 31 août 2007
31 mars 2007 à 13:29
J'ai réessayer avec ton deuxième post [auteurdetail.aspx?ID=237842 Ombitious_Developper], il ne me met plus d'erreur, mais il ne trouve toujours pas le driver. Merci beaucoup quand même pour m'avoir répondu.

Si tu sais comment faire avec mysql [auteurdetail.aspx?ID=482644 viphadia] ça m'interresse beaucoup. Je te remercie d'avance. 
0
Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 38
31 mars 2007 à 15:31
Salut:

Quel environnement de développement tu utilises?


________________________________________________________________________________
A.B. : 
"Dieu nous donne des mains, mais il ne bâtit pas les ponts
0
viphadia Messages postés 25 Date d'inscription dimanche 3 avril 2005 Statut Membre Dernière intervention 13 septembre 2008
31 mars 2007 à 18:56
salut
par exemple cette procédure de connexion à la base de donnée (mysql)
***********************************
static void connexion(){
 Statement stmt;
 ResultSet  resultats = null;
 Connection con = null;


// chargement du pilote
 try {
      Class.forName("org.gjt.mm.mysql.Driver").newInstance();
     }
 catch (Exception e)
       {
        System.out.println("Impossible de charger le pilote jdbc pour mySQL");
       }
      
 //connection a la base de données
 System.out.println("connection a la base de donnees");
 try {
   String DBurl = "jdbc:mysql://localhost/test?user=root";
      con = DriverManager.getConnection(DBurl);
     
     }
 catch (SQLException e)
       {
       System.out.println("Connection a la base de donnees impossible");
       } 


    //creation et execution de la requête(par exemple)
 try {
    String sqlstring="select * from tab";
      stmt = con.createStatement();
      resultats = stmt.executeQuery(sqlstring);
     }
 catch (SQLException e)
       {
       System.out.println("Anomalie lors de l'execution de la requete");
       }
       
      
}

1- installer mysql
2-ajouter le connecteur jdbc (mysql-connector-java-3.1.12-bin)au fichier "ext "
c'est le chemin C:\Sun\AppServer\jdk\jre\lib\ext (par exemple)
0
viphadia Messages postés 25 Date d'inscription dimanche 3 avril 2005 Statut Membre Dernière intervention 13 septembre 2008
31 mars 2007 à 19:00
je pense que tu peux changer mysql par postgresql !!!!! mais à codition que tu dois ajouter le connecteur jdbc qui le convient!!!
0
Snyve Messages postés 11 Date d'inscription dimanche 4 février 2007 Statut Membre Dernière intervention 31 août 2007
31 mars 2007 à 21:20
à [auteurdetail.aspx?ID= 237842 Ombitious_Developper]     Pour programmer en java, j'utilise NetBeans. (est que éclipse serait mieux ?)

à [auteurdetail.aspx?ID =482644 viphadia]     j'essayerai demain avec ton prog. Je reviendrais mettre si ça fonctionne ou pas. Merci.
0
Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 38
31 mars 2007 à 22:00
Salut:

Il faut que tu ajoutes le connecteur JDBC à l'environnement de développement que tu utilises. 
Voir les options de ton projet, en particulier les librairies utilisées.

Sinon utilises l'option de viphadia. (jdk\jre\lib\ext)
________________________________________________________________________________
A.B. : 
"Dieu nous donne des mains, mais il ne bâtit pas les ponts"
0
Rejoignez-nous