web-dev-qa-db-ja.com

java.sql.SQLException:適切なドライバーが見つかりません

DbConnectorを使用してDriverManagerから接続を取得する以下のDbQuery.Javaクラスを使用して単純なクエリを実行しようとしています。

  1. 私はすでに「mysql-connector-Java-5.1.25-bin.jar」をクラスパスに次のように含めています:export CLASSPATH = $ CLASSPATH:/home/me/ocpjp/chapter-10/mysql-connector-Java-5.1.25 /mysql-connector-Java-5.1.25-bin.jar
  2. 重要な場合は、「mysql -uroot-ptcialaddressBook」を使用してmysqlに接続できます。
  3. '-cp'引数を使用して実行しようとしましたが、役に立ちませんでした。
  4. #3DbConnect.Javaクラスに「データベース接続が確立されました」と表示させることができます。
  5. また、#4 DbQueryWorking.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);
}

}
}
6
rohtakdev

DbConnector.JavaのURLが間違っているようです。コロンがありません。 URLは次のとおりである必要があります。

jdbc:mysql://localhost:3306/

ではなく

jdbc:mysql//localhost:3306/
7
M. Abbas

uRLが間違っている、コロンが欠落している、次のようになります。

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