Jdbc no suitable driver

Bonsoir
j ai cree ma base de donnees ds MySql en utilisant EasyPhp,j essaie d ouvrir 1 connexion avec cette base en utilisant Java sous JBuilder.
Le prob est que l execution du code me donne toujours le message

java.sql.SQLException : No Suitable Driver

sachant que j ai utilise trois drivers aucun d eux ne marche :

org.gjt.mm.mysql.Driver
sun.jdbc.odbc.JdbcOdbcDriver
com.mysql.jdbc.Driver

merci pr tout conseil

5 réponses

  1. avec les IDE comme JBuilder il faut d'abord leur donner le chemin

    du driver, si tu as fé cela donne ton code et on verra!
    1. bonsoir b.d
      j'ai pa su comment continuer la discussion,donc je t'ai repondu
      je n'ai pas compri ce que tu veu dire par donner le chemin?
      -J'ai declaré la variable CLASSPATH et j'y ai mise le chemin du fichier .jar
      -J'ai aussi mis le fichier .jar dans le repertoir lib de JBuilder
      et
      -J'ai configuré la bibliotheque dans JBuilder
      voilci mon code

      package amina;

      import javax.swing.*;
      import java.awt.*;
      import java.sql.*;
      import org.gjt.mm.mysql.Driver;
      import java.util.*;
      import javax.sql.*;
      import java.io.*;

      public class Frame1 extends JFrame {
      static Connection connection;

      public Frame1() {
      try {
      jbInit();
      }
      catch(Exception e) {
      e.printStackTrace();
      }
      }

      private void jbInit() throws Exception { }
      public static void main(String[] args)
      {
      String driver ="org.gjt.mm.mysql.Driver";
      String url="jdbc/mysql://localhost/Entreprise?user=root;password=allaho";
      String login = "root";
      String password="allaho";

      try
      {
      //chargement du Driver :)
      Class.forName(driver).newInstance();
      Enumeration e = DriverManager.getDrivers();
      System.out.println(e.nextElement().getClass().getName());
      //Etablissement de la connexion
      Connection connection = DriverManager.getConnection(url,login,password);
      }

      catch (ClassNotFoundException cnfe)
      {
      System.out.println("Driver introuvable : ");
      cnfe.printStackTrace();
      }

      catch(SQLException sqle)
      {
      System.out.println("Erreur SQL :");
      sqle.printStackTrace();
      }

      catch (Exception e)
      {
      System.out.println("Autre erreur :");
      e.printStackTrace();
      }
      finally
      {
      //cf Comment bien fermer une connexion
      if(connection!=null)
      {
      try{connection.close();}
      catch(Exception e)
      {e.printStackTrace();}
      }

      }
      }
      }

      A l'execution il me donne

      java.sql.SQLException: No suitable driver
      com.mysql.jdbc.Driver
      Erreur SQL : at java.sql.DriverManager.getConnection(DriverManager.java:532)
      at java.sql.DriverManager.getConnection(DriverManager.java:171)
      at amina.Frame1.main(Frame1.java:41)

      Sachant que j'ai supprimé tous les details concernant le driver
      com.mysql.jdbc.Driver
      merci bien
    2. @aminaBonjour amina,

      Je viens de tomber sur ce forum et je découvre ton message. Comme ca va faire 2 mois que tu as posté, j'espère que tu as trouvé une (la ?) solution à ton problème. Si ce n'est pas le cas, peut-être ceci marchera-t-il (je travaille sous Eclipse mais je pense que ca ne change pas ;) )

      Dans ton programme, tu écris :
      jdbc/mysql://localhost/Entreprise?user=root;password=allaho";

      Or il me semble que la syntaxe est jdbc:mysql://localhost.....

      Pour ma part, j'utilise la syntaxe
      DriverManager.getConnection("jdbc:mysql://localhost...", utilisateur, motPasse)
      mais il me semble que la tienne est aussi valable.

      J'avais un problème qui renvoyait le même message que le tien et c'était le // qui manquait devant localhost. Ce qui prouve bien que "no suitable driver" n'est pas toujours une question de driver.

      J'espère donc que remplacer ton / par : sera la solution qui marchera pour toi.

      Bon courage
    3. @aminamacgic?ok, ca va faire plus d'un an que tu n'as pas posté sur cette discussion, mais ta solution m'a permis d'arranger un problème vite fait bien fait chez moi.

      t'es un amour. ;oD

      arn.
    4. @macgicPersonnellement j'ai eu le même problème que toi mais localisé un tout petit peu plus loin, c'est dans le même style alors je répond ici :

      DriverManager.getConnection("jdbc:mysql://***.***.***.***/","user","password");

      Il manquait la barre oblique (slash) à la fin de l'adresse IP.

      Un super message d'erreur à s'arracher les cheveux pour pas grand chose !
    5. Moi j'ai encore le même problème mais je ne peux pas tester ta méthode puisque j'utilise le driver par défaut (je ne sais pas ou sont localisés les drivers en dur mais ça faut pas le dire ;-))

      Voici mon code :

      java.sql.Connection con = null;
      java.sql.PreparedStatement pstmt = null;

      try {
      con = java.sql.DriverManager.getConnection("jdbc:default:connection");
      String edit = e.getPage().getParameter("edit").toString();
      String matnm = DBTools.convertToString( DBTools.dLookUp("[cd mat nm]", "[m 4 nomenclature]", "[libellé identification]like'"+e.getPage().getParameter("old").toString()+"%'", "Connection1"), "Connection1", e.getPage().getCCSLocale());
      pstmt = con.prepareStatement("UPDATE [m 4 nomenclature] SET [libellé identification] = "+edit+"[cd mat nm] = "+matnm);
      pstmt.executeUpdate();
      }catch(Exception x){
      System.out.println("Une exception s'est produite !" + x.getMessage());
      System.out.println("Affichage de la pile :\n"); x.printStackTrace();
      }finally{ if(pstmt!=null){ try{pstmt.close();}catch(java.sql.SQLException ex){ex.printStackTrace();} } }

      et voici l'exception que j'ai sur la console du server :

      [STDOUT] DriverManager.getConnection("jdbc:default:connection")
      [STDOUT] trying driver[className=sun.jdbc.odbc.JdbcOdbcDriver,sun.jdbc.odbc.JdbcOdbcDriver@f9104a]
      [STDOUT] *Driver.connect (jdbc:default:connection)
      [STDOUT] trying driver[className=sun.jdbc.odbc.JdbcOdbcDriver,sun.jdbc.odbc.JdbcOdbcDriver@19c9f16]
      [STDOUT] *Driver.connect (jdbc:default:connection)
      [STDOUT] trying driver[className=sun.jdbc.odbc.JdbcOdbcDriver,sun.jdbc.odbc.JdbcOdbcDriver@79ac92]
      [STDOUT] *Driver.connect (jdbc:default:connection)
      [STDOUT] trying driver[className=org.hsqldb.jdbcDriver,org.hsqldb.jdbcDriver@4de3fe]
      [STDOUT] trying driver[className=org.hsqldb.jdbcDriver,org.hsqldb.jdbcDriver@1b35ece]
      [STDOUT] trying driver[className=sun.jdbc.odbc.JdbcOdbcDriver,sun.jdbc.odbc.JdbcOdbcDriver@15b4b49]
      [STDOUT] *Driver.connect (jdbc:default:connection)
      [STDOUT] getConnection: no suitable driver
      [STDOUT] java.sql.SQLException: No suitable driver
      at java.sql.DriverManager.getConnection(DriverManager.java:532)
      at java.sql.DriverManager.getConnection(DriverManager.java:193)
      at org.apache.jsp.MaPage_jsp$MaPagePageHandler.beforeShow(MaPage_jsp.java:60)
      at com.codecharge.components.Page.fireBeforeShowEvent(Page.java:614)
      at org.apache.jsp.MaPage_jsp._jspService(MaPage_jsp.java:1429)
      at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:137)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
      at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:210)
      at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295)
      at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
      at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:256)
      at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
      at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
      at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
      at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
      at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
      at org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:246)
      at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
      at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
      at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
      at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2415)
      at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
      at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
      at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:171)
      at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
      at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172)
      at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
      at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:509)
      at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
      at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
      at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
      at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
      at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
      at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
      at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
      at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:223)
      at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:594)
      at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:392)
      at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:565)
      at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:619)
      at java.lang.Thread.run(Thread.java:536)
      SQLException: SQLState(08001)
      [STDOUT] Une exception s'est produite !No suitable driver
      [STDOUT] Affichage de la pile :
      [STDERR] java.sql.SQLException: No suitable driver
      [STDERR] at java.sql.DriverManager.getConnection(DriverManager.java:532)
      [STDERR] at java.sql.DriverManager.getConnection(DriverManager.java:193)
      [STDERR] at org.apache.jsp.MaPage_jsp$MaPagePageHandler.beforeShow(MaPage_jsp.java:60)
      [STDERR] at com.codecharge.components.Page.fireBeforeShowEvent(Page.java:614)
      [STDERR] at org.apache.jsp.MaPage_jsp._jspService(MaPage_jsp.java:1429)
      [STDERR] at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:137)
      [STDERR] at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
      [STDERR] at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:210)
      [STDERR] at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295)
      [STDERR] at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
      [STDOUT] ResultSet.finalize sun.jdbc.odbc.JdbcOdbcResultSet@53b2c
      [STDOUT] Statement.finalize sun.jdbc.odbc.JdbcOdbcPreparedStatement@5354a
      [STDOUT] *PreparedStatement.close
      [STDOUT] ResultSet.finalize sun.jdbc.odbc.JdbcOdbcResultSet@16ff2d9
      [STDOUT] Statement.finalize sun.jdbc.odbc.JdbcOdbcPreparedStatement@1ed957d
      [STDOUT] *PreparedStatement.close
      [STDOUT] ResultSet.finalize sun.jdbc.odbc.JdbcOdbcResultSet@b0a518
      [STDERR] at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
      [STDERR] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
      [STDERR] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
      [STDERR] at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:256)
      [STDERR] at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
      [STDERR] at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
      [STDERR] at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
      [STDERR] at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
      [STDERR] at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
      [STDERR] at org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:246)
      [STDERR] at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
      [STDERR] at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
      [STDERR] at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
      [STDERR] at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2415)
      [STDERR] at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
      [STDERR] at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
      [STDERR] at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:171)
      [STDERR] at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
      [STDERR] at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172)
      [STDERR] at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
      [STDERR] at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:509)
      [STDERR] at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
      [STDERR] at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
      [STDERR] at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
      [STDERR] at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
      [STDERR] at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
      [STDERR] at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
      [STDERR] at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
      [STDERR] at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:223)
      [STDERR] at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:594)
      [STDERR] at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:392)
      [STDERR] at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:565)
      [STDERR] at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:619)
      [STDERR] at java.lang.Thread.run(Thread.java:536)

      J'ai oblié de dire que j'utilise une bas Access avec un server Jboss Tomcat