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 du Club 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
    Points : 63
    Points
    63
    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 régulier
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

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

  3. #3
    Membre éclairé
    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
    Points : 704
    Points
    704
    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 du Club 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
    Points : 63
    Points
    63
    Par défaut
    oui il y est vu que ça charge avec un autre prog java bidon.

  5. #5
    Membre chevronné
    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
    Points : 2 208
    Points
    2 208
    Par défaut
    Le user avec lequel tu essaye d'accéder à ta base existe-t-il dans Access ?

  6. #6
    Membre éclairé
    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
    Points : 704
    Points
    704
    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 du Club 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
    Points : 63
    Points
    63
    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 chevronné
    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
    Points : 2 208
    Points
    2 208
    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.

  9. #9
    Membre du Club 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
    Points : 63
    Points
    63
    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 chevronné
    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
    Points : 2 208
    Points
    2 208
    Par défaut
    Poste le code qui pose problème.On pourra mieux t'aider

  11. #11
    Membre du Club 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
    Points : 63
    Points
    63
    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 du Club 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
    Points : 63
    Points
    63
    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 éminent sénior
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Suisse

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Points : 21 324
    Points
    21 324
    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 expert
    Avatar de TheLeadingEdge
    Inscrit en
    Mai 2005
    Messages
    1 199
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 1 199
    Points : 3 103
    Points
    3 103
    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 du Club 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
    Points : 63
    Points
    63
    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 expert
    Avatar de TheLeadingEdge
    Inscrit en
    Mai 2005
    Messages
    1 199
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 1 199
    Points : 3 103
    Points
    3 103
    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 éclairé 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
    Points : 683
    Points
    683
    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 du Club 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
    Points : 63
    Points
    63
    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