Home > Mobile >  java.sql.SQLException: No suitable driver found for jdbc://localhost:3306/twitch
java.sql.SQLException: No suitable driver found for jdbc://localhost:3306/twitch

Time:06-11

I was trying to connect to MySQL "twitch" database using java with this code below:

import java.sql.*;

public class App {
    public static void main(String[] args) throws Exception {
        try {
            Class.forName("com.mysql.jdbc.Driver");
            //Class.forName("com.mysql.cj.jdbc.Driver");

            String url = "jdbc://localhost:3306/twitch";
            String username = "root";
            String pass = "nfreal-yt10";

            Connection con=DriverManager.getConnection(url,username,pass);
            Statement stmt=con.createStatement();
            ResultSet rs=stmt.executeQuery("select distinct creator_id from twitch.information where creator_id > 40;");
            while (rs.next()) {
                System.out.println(rs.getString(1));
            }
            con.close();
        }
        catch(Exception e) {
            System.out.println(e);
        }
    }
}

when I executed the code my console throws (Full error):

Loading class `com.mysql.jdbc.Driver'. 
This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver'. The driver is automatically registered via the SPI and manual loading of the driver 
class is generally unnecessary.        
java.sql.SQLException: No suitable driver found for jdbc://localhost:3306/twitch

I have added MySQL connector on my directory folder and all stuff which required to be added, yet the error still occurred, why?

CodePudding user response:

When you communicate with your database (located at /localhost:3306/twitch), you must precise the protocol used (eg. your browser use http or https protocol followed with the adress).

JDBC is a driver that can interface with MySQL, but can't directly access to your database. Hence your URL should be:

String url = "jdbc:mysql://localhost:3306/twitch";

EDIT : Class.forName("com.mysql.cj.jdbc.Driver"); is no more needed in general. Details here.

  • Related