0

I am calling below method:


boolean ans= StudentDao.insertStudentToDB(st);

but its returning false I had already referenced mysql connector-java jar file in my project, and configured CLASSPATH, I was still getting the same error. I tried too much but didn't got its satisfactory solution anywhere on any site

the stacktrace is below:


    java.lang.ClassNotFoundException: com.mysql.cj.jdbc.Driver
        at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641)
        at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520)
        at java.base/java.lang.Class.forName0(Native Method)
        at java.base/java.lang.Class.forName(Class.java:375)
        at com.studentManage.CP.createC(CP.java:12)
        at com.studentManage.StudentDao.insertStudentToDB(StudentDao.java:9)
        at com.studentManage.Start.main(Start.java:32)
    java.lang.NullPointerException: Cannot invoke "java.sql.Connection.prepareStatement(String)" because "con" is null

CP.java:

package com.studentManage;
import java.sql.*;

public class CP {
    static Connection con;
    public static Connection createC(){
        

        try {
            //load the driver
            Class.forName("com.mysql.jdbc.Driver");
             

            //create the connection
            String user ="root";
            String password ="2001";
            String url ="jdbc:mysql://localhost:3306/student_manage";

             con = DriverManager.getConnection(url,user,password);
            

        }catch (Exception e){
            e.printStackTrace();
        }
        return con;




    }

}

StudentDao.java:

package com.studentManage;
import java.sql.*;

public class StudentDao {
    public static boolean insertStudentToDB(Student st){
        //jdbc code to insert student
        boolean f=false;
        try {
            Connection con = CP.createC();

            String q= "insert into students(sname, sphone,scity) values(?,?,?);";
                //prepare statement
            PreparedStatement pstmt = con.prepareStatement(q);
            
             

            //set values
            pstmt.setString(1,st.getStudentName());
            pstmt.setString(2,st.getStudentPhoneNo());
            pstmt.setString(3,st.getStudentCity());

            //Execute
            pstmt.executeUpdate();
            f=true;

        } catch (Exception e) {
            e.printStackTrace();
            System.out.println(e);
        }
        return f;


    }

}

  • `Class.forName("com.mysql.jdbc.Driver");` is throwing the exception. So `static Connection con;` is and will remain `null`. – Elliott Frisch Jul 29 '22 at 12:19
  • code says `com.mysql.jdbc.Driver` but error is thrown for `com.mysql.cj.jdbc.Driver` . make sure you are having the right driver class and check again – sidgate Jul 29 '22 at 12:25
  • @sidgate I tried both driver class ```com.mysql.jdbc.Driver``` and ```com.mysql.cj.jdbc.Driver ``` but still giving same error – Vaibhav Nirmal Jul 29 '22 at 12:45
  • *I had already referenced mysql connector-java jar file in my project, and configured CLASSPATH* Time to revisit the `CLASSPATH`. – Elliott Frisch Jul 30 '22 at 01:13

0 Answers0