java.sql.SQLException:找不到合适的驱动程序 [英] java.sql.SQLException: No suitable driver found

查看:178
本文介绍了java.sql.SQLException:找不到合适的驱动程序的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I am trying to execute simple query using below DbQuery.java class which uses DbConnector to get a Connection from DriverManager.

注释:

  1. 我已经在我的数据库中包含了"mysql-connector-java-5.1.25-bin.jar" 类路径通过:导出 CLASSPATH = $ CLASSPATH:/home/me/ocpjp/chapter-10/mysql-connector-java-5.1.25/mysql-connector-java-5.1.25-bin.jar
  2. 我能够使用"mysql -uroot -ptcial"连接到mysql 地址簿",如果有关系的话.
  3. 也尝试使用'-cp'运行 论据无济于事.
  4. 我能够使我的#3 DbConnect.java类说建立数据库连接".
  5. 还#4 DbQueryWorking.java没有问题,并提供了预期的输出.
  1. I have already included "mysql-connector-java-5.1.25-bin.jar" on my classpath via: export CLASSPATH=$CLASSPATH:/home/me/ocpjp/chapter-10/mysql-connector-java-5.1.25/mysql-connector-java-5.1.25-bin.jar
  2. I am able to connect to mysql with "mysql -uroot -ptcial addressBook", if it matters.
  3. have also tried running with '-cp' argument with no avail.
  4. I am able to get my #3 DbConnect.java class to say "Database connection established".
  5. Also #4 DbQueryWorking.java has no issues and provides expected output .

能否请您帮助我了解这里的问题?

Can you please help me understand what is the issue here ?

1)DbConnector.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

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

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

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);
}

}
}

推荐答案

看来DbConnector.java中的URL错误.冒号丢失.网址必须为:

it looks like that the URL in DbConnector.java is wrong. A colon is missing. The url must be:

jdbc:mysql://localhost:3306/

而不是

jdbc:mysql//localhost:3306/

这篇关于java.sql.SQLException:找不到合适的驱动程序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆