2017-05-21 9 views
0

は、ここに私のコードです:私はIntelliJのにライブラリとしてのmysql-コネクタ-javaの-5.1.39.jarをインポートした適切なドライバが見つかりません。 JavaのJDBCのMySQLのコネクタ

import java.sql.*; 
import com.mysql.jdbc.Driver; 

public class Main { 

    public void connect() { 
     Connection con = null; 


     try { 
      Class.forName("com.mysql.jdbc.Driver"); 
      con = DriverManager.getConnection("jdbc:mysql//localhost:3306/mydb", "dev", "pass"); 
     } 
     catch (Exception e) { 
      e.printStackTrace(); 
     } 
     finally { 
      if (con != null) try { con.close(); } catch(Exception e) {} 
     } 
    } 

    public static void main(String[] args) { 
     Main m = new Main(); 

     m.connect(); 
    } 
} 

、あなたが見ることができるようにドライバがコードにインポートされます。

しかし、私は得る:

java.sql.SQLException: No suitable driver found for jdbc:mysql//localhost:3306/mydb 

私は数え切れないほどのスタックオーバーフローの質問を見ていると私はそれが、少なくとも、接続を試みる必要があるより多くのものを把握することはできません。私はローカルのSQLサーバを稼働させており、ポートとデータベース名を二重にチェックしました。

ありがとうございます、ありがとうございます。

EDIT:これは複製ではありません。誰かが旗を立てた他の質問に対する解決策はここでは関係ありません。他の質問に記載されているように、私はすでにこのプロジェクトのライブラリとしてjarファイルを追加していました。また、クラッシュは "Class.forName"部分では発生せず、後続の行でクラッシュします。

+0

の可能性のある重複:([IntelliJのライブラリとしてロードされているにもかかわらず、見つからないのMySQLコネクタドライバ] http://stackoverflow.com/questions/22367323/intellij-mysql-connector -driver-not-found-as-a-libraryにもかかわらず) – Joe

+1

@JohnyThomasそうではありません。それは最終的にはコンパイルエラーです。 – EJP

+0

申し訳ありませんが間違った旗 – Joe

答えて

2

コロン文字がありません。

"jdbc:mysql//localhost:3306/mydb" 

Connecting to MySQL Using the JDBC DriverManager Interface

"jdbc:mysql://localhost:3306/mydb" 

を参照してくださいする必要があります。

欠落しているコロンは、ドライバマネージャが"mysql"ではなく"mysql//localhost"と呼ばれるドライバプロバイダを検索しようと試みることを意味します。もちろん、そのようなプロバイダは存在しません。


コード内のClass.forNameコールは必要ありません。しかし、呼び出しが成功するという事実は、ドライバクラスが欠けているのではなく、問題ではないという強い手がかりです。それは、読者にその他の理由を探す必要がありますなぜDriverManagerがドライバを見つけることができませんでした。

1
jdbc:mysql//localhost:3306/mydb 

あなたはmysql後にコロンが不足しています。

NB Class.forName()行は10年間必要ではありません。

0

MySQLのJDBC接続文字列は、MySQLのマニュアルのhereで説明されています。その上で、あなたはここでやった間違いは、データベースのタイプの後のコロンの単純ミスで、mysql

あなたは(ただし資格情報なし、)接続文字列ならここから変更する予定です。

これに
"jdbc:mysql//localhost:3306/mydb" 

"jdbc:mysql://localhost:3306/mydb" 
関連する問題