13
  1. I have downloaded the mysql-connector-java-5.1.24-bin.jar
  2. I have created a lib folder in my project and put the jar in there.
  3. properties of project->build path->add JAR and selected the JAR above.
  4. I still get java.sql.SQLException: No suitable driver found for jdbc:mysql//localhost:3306/mysql

I am using mysql 5.5 The code:

package DBTest;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.sql.*;
import java.util.*;

/**
 * Servlet implementation class TenUsers
 */
@WebServlet("/TenUsers")
public class TenUsers extends HttpServlet {
    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        PrintWriter out = response.getWriter();
        String mySqlUrl = "jdbc:mysql://localhost:3306/mysql";

        Properties userInfo = new Properties();
        userInfo.put("user", "root");
        userInfo.put("password", "SabababArba");
        try{
            Connection connection = DriverManager.getConnection(mySqlUrl, userInfo);
        }catch(Exception e) {
            out.println(e);
        }      
    }
}

If I add Class.forName("com.mysql.jdbc.Driver"); before Connection connection = DriverManager.getConnection(mySqlUrl, userInfo); I get java.lang.ClassNotFoundException: com.mysql.jdbc.Driver

Itay Moav -Malimovka
  • 52,579
  • 61
  • 190
  • 278

7 Answers7

12

Try to insert this:

DriverManager.registerDriver(new com.mysql.jdbc.Driver());

before getting the JDBC Connection.

niculare
  • 3,629
  • 1
  • 25
  • 39
  • It solved the dependency problems I got using sbt test. DriverManager couldn't locate the `org.postgresql.Driver` by itself. This line helped to fix my test suite run using `sbt test` – Evhz Jan 05 '18 at 15:24
8

1: I have downloaded the mysql-connector-java-5.1.24-bin.jar

Okay.


2: I have created a lib folder in my project and put the jar in there.

Wrong. You need to drop JAR in /WEB-INF/lib folder. You don't need to create any additional folders.


3: properties of project->build path->add JAR and selected the JAR above.

Unnecessary. Undo it all to avoid possible conflicts.


4: I still get java.sql.SQLException: No suitable driver found for jdbc:mysql//localhost:3306/mysql

This exception can have 2 causes:

  1. JDBC driver is not in runtime classpath. This is to be solved by doing 2) the right way.
  2. JDBC URL is not recognized by any of the loaded JDBC drivers. Indeed, the JDBC URL is wrong, there should as per the MySQL JDBC driver documentation be another colon between the scheme and the host.

    jdbc:mysql://localhost:3306/mysql
    
BalusC
  • 1,082,665
  • 372
  • 3,610
  • 3,555
  • I did all you wrote. Still, same issue :-( Must be something super simple I am missing – Itay Moav -Malimovka Apr 01 '13 at 19:28
  • Clean, rebuild, redeploy and restart. If that doesn't help, then well, maybe you didn't carefully follow the instructions or aren't running the code you think you're running. – BalusC Apr 01 '13 at 19:32
  • hmmm...I created a new project, clean. Did the steps you wrote. I see the JAR in the Java Resources / Libraries / Web App Libraries, Still, same error. When I do the same with a simple Java project, it works fine. For web I am using servlets, as this seems to be all the difference – Itay Moav -Malimovka Apr 01 '13 at 19:43
  • Yes, for a Java EE web application the JAR file must physically be dropped in `/WEB-INF/lib` folder of the project, which should be already prepared for long by the IDE if you created the project the right way. That's all. Just one step. Drop the JAR in `/WEB-INF/lib`. Finished. No need to create the folder structure yourself. No need to fiddle with project's properties which would possibly make things worse. By the way, do you now get a `ClassNotFoundException` or `SQLException`? Those are entirely different exceptions with each a very clear own cause. – BalusC Apr 01 '13 at 19:45
  • I followed your steps to the letter, I just dropped the JAR into the folder (created a new project for this test). the exception I get is: java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost:3306/lms2prod – Itay Moav -Malimovka Apr 01 '13 at 19:51
3

You can paste the .jar file of the driver in the Java setup instead of adding it to each project that you create. Paste it in C:\Program Files\Java\jre7\lib\ext or wherever you have installed java.

After this you will find that the .jar driver is enlisted in the library folder of your created project(JRE system library) in the IDE. No need to add it repetitively.

2
  1. copy mysql-connector-java-5.1.24-bin.jar

  2. Paste it into \Apache Software Foundation\Tomcat 6.0\lib\<--here-->

  3. Restart Your Server from Eclipes.

  4. Done

Dipanjan
  • 31
  • 2
  • While I guess it will work, I need to bundle it all into one package, that's why I prefer it to be inside the project folder themselves. Although, We r seriously considering this (will affect release script etc) – Itay Moav -Malimovka Jul 26 '13 at 02:35
  • The mysql-connector-java-5.1.24-bin.jar file should be in lib directory of server , otherwise it will not be worked. – Dipanjan Jul 26 '13 at 20:25
1

you haven't loaded driver into memory. use this following in init()

Class.forName("com.mysql.jdbc.Driver");

Also, you missed a colon (:) in url, use this

String mySqlUrl = "jdbc:mysql://localhost:3306/mysql";
Ankit
  • 6,554
  • 6
  • 49
  • 71
1

if you are getting this exception again and again then download my-sql connector and paste in tomcat/WEB-INF/lib folder...note that some times WEB-INF folder does not contains lib folder, at that time manually create lib folder and paste mysql connector in that folder..definitely this will work.if still you got problem then check that your jdk must match your system. i.e if your system is 64 bit then jdk must be 64 bit

1

Try this tutorial it has the explanation and it will be helpful http://www.ccs.neu.edu/home/kathleen/classes/cs3200/JDBCtutorial.pdf

Prem Chandran
  • 55
  • 1
  • 2
  • 8