6

I've written this java application to respond the data from the command line and store it into a database :

 import java.util.Scanner;
import java.sql.*;


public class Program {


    public static void main(String[] args)throws ClassNotFoundException 


    {


        Connection conn=null;

        try {

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

             conn = DriverManager.getConnection("jdbc:mysql://localhost/DevOps_DB","root","root");


             PreparedStatement st = conn.prepareStatement("INSERT INTO pers " + "VALUES ('"+args[0]+"'); ");
             st.executeUpdate();


        } 



        catch (SQLException ex) {

            System.out.println("SQL Exception : "+ ex.getMessage());

            System.out.println("Vendor Error : "+ ex.getErrorCode());

        }


        catch(ClassNotFoundException ex) {

            ex.printStackTrace();


        }



//      
//      for(String arg : args)            
//      {   
//           System.out.println(arg);            
//      }




    }





}

But I've got the following exception :

java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
    at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:323)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:268)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:190)
    at Program.main(Program.java:18)

why ? ... any help to fix the problem ?

EDIT :

I added the .jar file , see the following image :

enter image description here

Akari
  • 856
  • 8
  • 21
  • 36

7 Answers7

5

You need to download mysql connector jar file(driver implementation) and add it to your class path.

On the side note if your are using JDBC 4.0 (Java 7 and even 6 I think) then you need not use Class.forName("com.mysql.jdbc.Driver");. Simply add the jar to the class path. Driver implementation will automatically be searched and loaded from class path.

Aniket Thakur
  • 66,731
  • 38
  • 279
  • 289
  • Are you sure you are adding it to the same project you are running. `Right Click the project -- > build path -- > configure build path` and `In Libraries Tab press Add External Jar and Select your jar.` – Aniket Thakur Feb 16 '14 at 15:53
  • 1
    As the Exception clearly suggests class loading failed as class was not located I would suggest use `java -cp pathToMySqlCJar yourMainClass` to run and see. If this succeeds you are adding not adding jar to your project correctly. Try Rebuilding your project in Eclipse. – Aniket Thakur Feb 16 '14 at 15:58
4

ok you added the jar.do one thing open server, form window->show view->servers then double click on server

then it will open a new window then goto open Launch configuration then

go to class path and agin add mysql-connector.jar click on ok.

3

You have to download mysql connector jar file(driver implementation) and add it to your class path.

kkashyap1707
  • 494
  • 2
  • 8
  • 16
2

@Akari : this is related to the .jar file for MySql. Try to check whether the .jar for MySql is set to the classpath or not.

Suneet Bansal
  • 2,664
  • 1
  • 14
  • 18
0

Extract the mysql driver which you can download from a link! and copy the .jar file of the mysql zip and paste it here in "lib"Screenshot of the location u have to paste in into (in the interface)

Gueorgui Obregon
  • 5,077
  • 3
  • 33
  • 57
0

Use com.mysql.cj.jdbc.Driver instead of com.mysql.jdbc.Driver.

blurfus
  • 13,485
  • 8
  • 55
  • 61
-1

I had a proplem same. Then i moved file .jar from (D:) to (C:) and it ư

  • 1
    Your answer seems to be incomplete, but it's also not very insightful. – Jelaby Mar 31 '22 at 19:22
  • Your answer could be improved with additional supporting information. Please [edit] to add further details, such as citations or documentation, so that others can confirm that your answer is correct. You can find more information on how to write good answers [in the help center](/help/how-to-answer). – Community Mar 31 '22 at 19:32
  • This does not really answer the question. If you have a different question, you can ask it by clicking [Ask Question](https://stackoverflow.com/questions/ask). To get notified when this question gets new answers, you can [follow this question](https://meta.stackexchange.com/q/345661). Once you have enough [reputation](https://stackoverflow.com/help/whats-reputation), you can also [add a bounty](https://stackoverflow.com/help/privileges/set-bounties) to draw more attention to this question. - [From Review](/review/late-answers/31427507) – Melvin Apr 02 '22 at 11:34