首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >java.sql.SQLException:没有找到合适的司机

java.sql.SQLException:没有找到合适的司机
EN

Stack Overflow用户
提问于 2013-07-06 21:47:29
回答 2查看 37.1K关注 0票数 6

我试图使用下面的DbQuery.java类执行简单的查询,它使用DbConnector从DriverManager获得连接。

备注

  1. 我已经在我的类路径中包含了“mysql-连接器-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 addressBook“连接mysql。
  3. 也尝试使用“-cp”论点运行,但没有结果。
  4. 我可以让我的#3 DbConnect.java类说“数据库连接已建立”。
  5. 另外,#4 DbQueryWorking.java没有问题,并提供了预期的输出。

你能帮我理解一下这里有什么问题吗?

1) DbConnector.java

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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);
}

}
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-07-06 22:18:04

看起来DbConnector.java中的URL是错误的。结肠不见了。网址必须是:

代码语言:javascript
复制
jdbc:mysql://localhost:3306/

而不是

代码语言:javascript
复制
jdbc:mysql//localhost:3306/
票数 7
EN

Stack Overflow用户

发布于 2013-07-06 22:17:54

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

代码语言:javascript
复制
String url = "jdbc:mysql://localhost:3306/";
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17507449

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档