java.sql.SQLException:未找到合适的驱动程序

java.sql.SQLException:未找到合适的驱动程序,java,jdbc,sqlexception,ocpjp,Java,Jdbc,Sqlexception,Ocpjp,我尝试使用下面的DbQuery.java类执行简单查询,该类使用DbConnector从DriverManager获取连接 注意: 我已经将“mysql-connector-java-5.1.25-bin.jar”包含在我的 类路径via:export CLASSPATH=$CLASSPATH:/home/me/ocpjp/chapter-10/mysql-connector-java-5.1.25/mysql-connector-java-5.1.25-bin.jar 我可以通过“mysql-

我尝试使用下面的DbQuery.java类执行简单查询,该类使用DbConnector从DriverManager获取连接

注意

  • 我已经将“mysql-connector-java-5.1.25-bin.jar”包含在我的 类路径via:export CLASSPATH=$CLASSPATH:/home/me/ocpjp/chapter-10/mysql-connector-java-5.1.25/mysql-connector-java-5.1.25-bin.jar
  • 我可以通过“mysql-uroot-ptcial”连接到mysql “地址簿”,如果有关系的话
  • 也尝试过使用'-cp'运行 争论没有结果
  • 我可以让我的#3 DbConnect.java类说“数据库连接已建立”
  • 另外#4DbQueryWorking.java没有问题,并提供了预期的输出
  • 你能帮我理解这里的问题吗

    1) DbConnector.java

    package com.me.ocpjp.chapter10;
    
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.SQLException;
    
    public class DbConnector{
    public static Connection connectToDb() throws SQLException{
    String url = "jdbc:mysql//localhost:3306/";
    String db = "addressBook";
    String username = "root";
    String password = "tcial";
    return DriverManager.getConnection(url+db, username, password);
    }
    
    }
    
    2) DbQuery.java

    package com.me.ocpjp.chapter10;
    
    import java.sql.Connection  ;
    import java.sql.Statement  ;
    import java.sql.ResultSet  ;
    import java.sql.SQLException  ;
    import com.me.ocpjp.chapter10.DbConnector;
    
    public class DbQuery{
    public static void main(String[] args){
    try(Connection connection = DbConnector.connectToDb();
            Statement statement = connection.createStatement();
            ResultSet resultSet = statement.executeQuery("select * from contact")){
    System.out.println("ID \tfName \tlName \temail \t\tphoneNo");
    while(resultSet.next()){
    System.out.println(resultSet.getInt("id") + "\t"
    + resultSet.getString("firstName") + "\t"
    + resultSet.getString("lastName") + "\t"
    + resultSet.getString("email") + "\t"
    + resultSet.getString("phoneNo") );
    }
    
    }catch(SQLException sqle){
    sqle.printStackTrace();
    System.exit(-1);
    }
    
    }
    }
    
    3) DbConnect.java

    package com.me.ocpjp.chapter10;
    
    import java.sql.Connection;
    import java.sql.DriverManager;
    
    
    
    public class DbConnect{
    public static void main(String[] args){
    
    String url = "jdbc:mysql://localhost:3306/";
    String database = "addressBook";
    String userName = "root";
    String password = "tcial";
    
    try(Connection connection = DriverManager.getConnection(url+database, userName, password)){
    System.out.println("Database connection established");
    }catch(Exception e){
    System.out.println("Database connectioni NOT  established");
    e.printStackTrace();
    }
    
    }
    
    }
    
    4) DbQueryWorking.java

    package com.me.ocpjp.chapter10;
    
    import java.sql.Connection  ;
    import java.sql.Statement  ;
    import java.sql.ResultSet  ;
    import java.sql.SQLException  ;
    import java.sql.DriverManager;
    
    public class DbQuery{
    public static void main(String[] args){
    String url = "jdbc:mysql://localhost:3306/";
    String database = "addressBook";
    String userName = "root";
    String password = "tcial";
    try(Connection connection = DriverManager.getConnection(url + database, userName, password);
            Statement statement = connection.createStatement();
            ResultSet resultSet = statement.executeQuery("select * from contact")){
    System.out.println("ID \tfName \tlName \temail \t\tphoneNo");
    while(resultSet.next()){
    System.out.println(resultSet.getInt("id") + "\t"
    + resultSet.getString("firstName") + "\t"
    + resultSet.getString("lastName") + "\t"
    + resultSet.getString("email") + "\t"
    + resultSet.getString("phoneNo") );
    }
    
    }catch(SQLException sqle){
    sqle.printStackTrace();
    System.exit(-1);
    }
    
    }
    }
    

    您的URL错误,其中缺少冒号,应该是:

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

    看起来
    DbConnector.java
    中的URL是错误的。缺少一个冒号。url必须是:

    jdbc:mysql://localhost:3306/
    
    而不是

    jdbc:mysql//localhost:3306/
    

    你能发布完整的堆栈跟踪吗?我想我们不再需要了。谢谢