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 :

java.sql.SQLException: No suitable driver


Sujet :

JDBC Java

  1. #1
    Membre confirmé Avatar de lunart
    Homme Profil pro
    Administrateur système et réseau
    Inscrit en
    Décembre 2003
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Administrateur système et réseau

    Informations forums :
    Inscription : Décembre 2003
    Messages : 79
    Par défaut java.sql.SQLException: No suitable driver
    J'ai résolu une partie de mon problème en ne mettant qu'un seul driver dans le CLASSPATH et pas tout ceux que j'avais dans /urs/share/java

    Je parviens à me loguer à ma base avec un fichier tout bête genre HellopostgreSQL.java

    Le message d'erreur que j'obtiens cette fois est le suivant:
    Loading of relation PRODUCT failed.
    java.sql.SQLException: No suitable driver
    at java.sql.DriverManager.getConnection(DriverManager.java:545)
    at java.sql.DriverManager.getConnection(DriverManager.java:171)
    at LoadDBnew.loadProduct(LoadDBnew.java:36)
    at LoadDBnew.run(LoadDBnew.java:115)
    Par ailleurs j'ai les messages suivants
    Message d'erreur:
    $ psql -f effaceProd.sql maBase user Acces
    psql:effaceProd.sql:1: ERREUR: doit être le propriétaire de la relation product
    Fichier effaceProd.sql :
    et pourtant:
    $ psql -l
    Liste des bases de données
    Nom | Propriétaire | Encodage
    -----------+--------------+----------
    maBase | user | UNICODE
    template0 | postgres | LATIN9
    template1 | postgres | LATIN9
    (3 lignes)
    J'avoue être un peu perdu là...

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 77
    Par défaut
    ta connexion n'est pas bonne peut-être.

  3. #3
    Membre émérite
    Avatar de bbclone
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    537
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 537
    Par défaut
    l'erreur
    java.sql.SQLException: No suitable driver
    veu dire qu'il te manque le driver jdbc de ta base de donnee dans ton CLASSPATH.

    reverifie si tu la bien mis dedans.

  4. #4
    Membre confirmé Avatar de lunart
    Homme Profil pro
    Administrateur système et réseau
    Inscrit en
    Décembre 2003
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Administrateur système et réseau

    Informations forums :
    Inscription : Décembre 2003
    Messages : 79
    Par défaut
    oui il y est vu que ça charge avec un autre prog java bidon.

  5. #5
    Membre Expert
    Avatar de afrikha
    Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    1 600
    Détails du profil
    Informations personnelles :
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2005
    Messages : 1 600
    Par défaut
    Le user avec lequel tu essaye d'accéder à ta base existe-t-il dans Access ?


    Mes publications
    Lisez
    Les régles du forum
    Pensez au bouton

  6. #6
    Membre émérite
    Avatar de bbclone
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    537
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 537
    Par défaut
    c'est alors que tu a fais une faute dans le nom du driver dans le second programe?
    non?

  7. #7
    Membre confirmé Avatar de lunart
    Homme Profil pro
    Administrateur système et réseau
    Inscrit en
    Décembre 2003
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Administrateur système et réseau

    Informations forums :
    Inscription : Décembre 2003
    Messages : 79
    Par défaut
    Là j'ai tout supprimé et j'essai de tout réinstaller.
    J'ai supprimé la base recréé l'utilisateur.
    J'ai toujours des problèmes.
    Je demande bien lors de la création de mon utilisateur à ce que celui-ci puisse avoir le droit de créer une base mais lorsque j'essai de créer cette base avec mon user il me dit que je n'ai pas les permissions.

    Afrikha: Je ne trouve pas le Access que tu mentionnes.

    Précision: je suis sous linux.

  8. #8
    Membre Expert
    Avatar de afrikha
    Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    1 600
    Détails du profil
    Informations personnelles :
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2005
    Messages : 1 600
    Par défaut
    Citation Envoyé par lunart
    Afrikha: Je ne trouve pas le Access que tu mentionnes.
    Access est une base de données, je pensais que tu travaillais avec.Bref c'est un malentendu.


    Mes publications
    Lisez
    Les régles du forum
    Pensez au bouton

  9. #9
    Membre confirmé Avatar de lunart
    Homme Profil pro
    Administrateur système et réseau
    Inscrit en
    Décembre 2003
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Administrateur système et réseau

    Informations forums :
    Inscription : Décembre 2003
    Messages : 79
    Par défaut
    Citation Envoyé par afrikha
    Access est une base de données, je pensais que tu travaillais avec.Bref c'est un malentendu.
    pas de soucis .. si qqun d'autre a un conseil je suis prenneur

  10. #10
    Membre Expert
    Avatar de afrikha
    Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    1 600
    Détails du profil
    Informations personnelles :
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2005
    Messages : 1 600
    Par défaut
    Poste le code qui pose problème.On pourra mieux t'aider


    Mes publications
    Lisez
    Les régles du forum
    Pensez au bouton

  11. #11
    Membre confirmé Avatar de lunart
    Homme Profil pro
    Administrateur système et réseau
    Inscrit en
    Décembre 2003
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Administrateur système et réseau

    Informations forums :
    Inscription : Décembre 2003
    Messages : 79
    Par défaut
    Voilà le code de la fonction qui ouvre la base:
    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
        static void loadProduct(int nodeId){
    	try{
    	Class.forName("org.postgresql.Driver");
    	Connection conn =  //DriverManager.getConnection(db_urls[nodeId],user,passwd);
    	DriverManager.getConnection("jdbc:postgresql://localhost:maBase",
                                         user,
                                         passwd);
    	}
    	catch(Exception e){
    	    System.out.println("Loading of relation PRODUCT failed.");
    	    e.printStackTrace();
    	}
     
    	//System.out.println(" \b[OK]");	
     
        }
    Le code du main :
    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
      static public void main(String args[]){
    	if(args.length != 1){
    	    System.out.println("usage :  <app.conf>");
    	    System.exit(1);
    	}
     
    	// chargement des propriétés du fichier
    	Properties prop = new Properties();
    	try{
    	    prop.load(new FileInputStream(args[0]));
    	}
    	catch(Exception exc){
    	    System.out.println("Loading application properties failed.");
    	    exc.printStackTrace();
    	    System.exit(1);
    	}
    	nbNodes        = Integer.parseInt(prop.getProperty("NBNODES"));
    	db_driver      = prop.getProperty("DRIVER");
     
    	db_urls = new String[nbNodes];
    	for(int i=0; i<nbNodes ; i++){
    	    db_urls[i] = prop.getProperty("DBURL"+(i+1));
    	}
    	passwd         = prop.getProperty("PASSWD");
    	user           = prop.getProperty("USER");
    	System.out.println("données du fic: "+user +" , "+ passwd+" , "+db_urls[0]);
     
     
     
    	// insertion des données dans les bases
    	for(int i=0 ; i<nbNodes ; i++){
    	    new LoadDBnew(i);
    	}
        }
    A l'affichage on peut bien vérifier que les variables sont correctement initialisées par le fichier qui est chargé:
    $ java LoadDBnew ../demo.conf
    données du fic: Monuser , Acces , jdbc:postgresql://localhost:maBase
    Loading of relation PRODUCT failed.
    java.sql.SQLException: No suitable driver
    at java.sql.DriverManager.getConnection(DriverManager.java:545)
    at java.sql.DriverManager.getConnection(DriverManager.java:171)
    at LoadDBnew.loadProduct(LoadDBnew.java:36)
    at LoadDBnew.run(LoadDBnew.java:115)
    Voilà le vif du sujet

  12. #12
    Membre confirmé Avatar de lunart
    Homme Profil pro
    Administrateur système et réseau
    Inscrit en
    Décembre 2003
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Administrateur système et réseau

    Informations forums :
    Inscription : Décembre 2003
    Messages : 79
    Par défaut
    Le code suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    db = DriverManager.getConnection("jdbc:postgresql:"+database,
                                         username,
                                         password); //connect to the db
    est bon
    mais pas celui-ci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        db = DriverManager.getConnection("jdbc:postgresql://localhost:"+database,
                                         username,
                                         password); //connect to the db
    Pourtant:
    postgresql.conf / tcpip_socket = true

    Qu'est ce qu'il lui a fait le localhost??

  13. #13
    Expert confirmé
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Par défaut
    Citation Envoyé par lunart
    Le code suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    db = DriverManager.getConnection("jdbc:postgresql:"+database,
                                         username,
                                         password); //connect to the db
    est bon
    mais pas celui-ci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        db = DriverManager.getConnection("jdbc:postgresql://localhost:"+database,
                                         username,
                                         password); //connect to the db
    Pourtant:
    postgresql.conf / tcpip_socket = true

    Qu'est ce qu'il lui a fait le localhost??
    Je pense que c'est le protocole postgresql qui définit ainsi son url. Le chemin d'accès se faire de manière différente pour chaque type de base de données.

  14. #14
    Membre éprouvé
    Avatar de TheLeadingEdge
    Inscrit en
    Mai 2005
    Messages
    1 199
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 1 199
    Par défaut
    Bonjour,


    J'utilise 1 fichier properties de cette forme là sans soucis.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    jdbc.driver=org.postgresql.Driver
    jdbc.url=jdbc:postgresql://10.0.0.1:5432/nomdelabase
    jdbc.username=postgres
    jdbc.password=*****
    Question à 2 balles (mais on sait jamais ;-))
    localhost est bien défini ds ton fichier hosts ?
    Si tu mets l'@ ip en dur est-ce que ça marche ?

    [edit]
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    jdbc:postgresql://localhost:"+database,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    jdbc:postgresql://localhost/"+database,
    [/edit]

  15. #15
    Membre confirmé Avatar de lunart
    Homme Profil pro
    Administrateur système et réseau
    Inscrit en
    Décembre 2003
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Administrateur système et réseau

    Informations forums :
    Inscription : Décembre 2003
    Messages : 79
    Par défaut
    dans le fichier hosts la ligne suivante:

    127.0.0.1 localhost.localdomain localhost oriin1u
    Merci beaucoup pour ton aide j'arrive maintenant à me connecter à ma Base de donnée.

    Question subsidiaire:
    Est-on obligé d'utiliser le port 5432 sinon comment le changer?

    Merci encore.

  16. #16
    Membre éprouvé
    Avatar de TheLeadingEdge
    Inscrit en
    Mai 2005
    Messages
    1 199
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 1 199
    Par défaut
    5432 c'est le port par défaut.
    Tu peux bien évidemment en spécifier 1 autre pendant l'installation,
    ça n'a aucun impact sur le fonctionnement de ton moteur.
    Mais à mon avis si tu n'as pas 1 solide raison, il vaut mieux s'abstenir de faire des fantaisies, parce que tu as tjours le risque de prendre 1 port qui est le port par défaut d'un autre appli. (existante ou à venir)

  17. #17
    Membre émérite Avatar de g_rare
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    608
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 608
    Par défaut
    L'erreur "java.sql.SQLException: No suitable driver" revient (tellement!) souvent sur le forum, que je pense ce serait bien de le rajouter dans la JDBC : à la rubrique <<Comment charger un driver ?>> ...


    A+

  18. #18
    Membre confirmé Avatar de lunart
    Homme Profil pro
    Administrateur système et réseau
    Inscrit en
    Décembre 2003
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Administrateur système et réseau

    Informations forums :
    Inscription : Décembre 2003
    Messages : 79
    Par défaut
    Désolé d'avoir remis ça sur le tapis.
    Il me semblait pourtant avoir fait une recherche approfondie sur le sujet avant de poster.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 5
    Dernier message: 31/08/2012, 09h23
  2. Réponses: 1
    Dernier message: 04/06/2008, 23h22
  3. java.sql.SQLException: No suitable driver found
    Par jpalcluc dans le forum Hibernate
    Réponses: 5
    Dernier message: 31/07/2007, 16h53
  4. java.sql.SQLException: read-only
    Par mehdi.kiwi dans le forum Oracle
    Réponses: 6
    Dernier message: 17/05/2005, 16h46
  5. [JDBC] java.sql.SQLException: Closed Statement
    Par cmoulin dans le forum JDBC
    Réponses: 4
    Dernier message: 03/09/2004, 17h22

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