1
votes

I'm new at this area programming and I got some problems with driver, kinda:

MySql is working fine when I'm using it directly with client, problem is I can't make a connection tomcat with MySql

I put all my drivers at WEB-INF/lib

using mysql 5.7, tomcat 9.1, java 8, IntellijIdea 2016.1.1

java.sql.SQLException: No suitable driver found for jdbc:mysql/localhost:3306/world at java.sql.DriverManager.getConnection(DriverManager.java:689) at java.sql.DriverManager.getConnection(DriverManager.java:247) at Db.main(Db.java:20)

so here is my code:

import java.io.Serializable;

import java.sql.*;

public class Db implements Serializable{


public static void main(String args[]){
    Connection connection;
    final String dbURL = "jdbc:mysql/localhost:3306/world";
    final String username = "root";
    final String pswd = "******";
    try{
        DriverManager.getDrivers();
        connection = DriverManager.getConnection(dbURL,username,pswd);
        Statement statement = connection.createStatement();
        String query = "SELECT * FROM city WHERE Name LIKE 'New%'";
        ResultSet result = statement.executeQuery(query);
        while(result.next()){

            int id          = result.getInt("ID");
            String name     = result.getString("Name");
            String cCode    = result.getString("CountryCode");
            String district = result.getString("District");
            int pop         = result.getInt("Population");

            System.out.print("id = "+id+"</br>Name = "+name+
                    "</br>Code = "+cCode+"</br>District = "+district+
                    "</br>Population = "+pop+"</br>");
        }
    }catch (SQLException e){
        e.printStackTrace();
    }catch(Exception e){
        e.printStackTrace();
    }
}
}
1
put it in tomcat/libScary Wombat
Add Class.forName("com.mysql.jdbc.Driver"); Also put mysql connector jar in lib if you haven't. I find that you have not proper url also. Correct format : jdbc:mysql://<host>:<port>/<database_name>027
@027 Your first suggestion hasn't been needed since 2007, and wouldn't solve the problem.user207421

1 Answers

2
votes

Syntax for MySQL JDBC URL is:

The general format for a JDBC URL for connecting to a MySQL server is as follows, with items in square brackets ([ ]) being optional:

jdbc:mysql://[host1][:port1][,[host2][:port2]]...[/[database]][?propertyName1=propertyValue1[&propertyName2=propertyValue2]...]

Here is a simple example for a connection URL:

jdbc:mysql://localhost:3306/sakila?profileSQL=true

Your URL jdbc:mysql/localhost:3306/world is missing a :/ after mysql.

Port number defaults to 3306, so your URL should be:

jdbc:mysql://localhost/world