2016-07-18 1 views
0
java.sql.SQLException: No suitable driver found for jdbc:[email protected]:3306:emp 
    at java.sql.DriverManager.getConnection(Unknown Source) 
    at java.sql.DriverManager.getConnection(Unknown Source) 
    at com.jdbd.connection.ConnectionDemo.main(ConnectionDemo.java:13) 

여기 내 코드입니다JDBC 연결은 mSQL 오류가 "없음 적합한 드라이버를 찾을 수 없음"

package com.jdbd.connection; 

import java.sql.*; 

public class ConnectionDemo { 

    public static void main(String[] args) { 
     // TODO Auto-generated method stub 
     try{ 

      //1. get a connection to database 

      Connection myconn = DriverManager.getConnection("jdbc:[email protected]:3306:emp","root","Dreamliner787"); 
      //2.create a statement 
      Statement mystm =myconn.createStatement(); 
      //3. Execute sql query 
      ResultSet myRs = mystm.executeQuery("select*from employee"); 
      //4. process the result set 
      while(myRs.next()){ 
       System.out.println(myRs.getString("last")+ "," + myRs.getString("first")); 

      } 

     } 
     catch(Exception e){ 
      e.printStackTrace(); 

     } 
    } 

} 
+0

jar 파일도 라이브러리에 있습니다. 내가 잘못하고 있는게 뭐야? –

+0

'jdbc : mysql @ // localhost : 3306/emp' – bmarkham

+0

@bmarkham 여전히 동일한 예외가 throw됩니다. –

답변

1

오류 중 하나 귀하의 URL이 잘못, 또는 JDBC 드라이버가 없기 때문에.

JDBC URL은 일반적으로 jdbc:mysql://localhost:3306/mysql처럼 보입니다. 내가 왜 @을 가지고 있는지 잘 모르겠습니다. 하지만 그것은 아마도 문제입니다.

이렇게 드라이버를로드하여 문제가 클래스 경로에 있는지 확인할 수 있습니다.

Class.forName("com.mysql.jdbc.Driver"); 

편집 :

Class.forName는 JDBC 특정하지 않습니다. Driver 클래스를 현재 클래스 로더에로드하는 것입니다. 데이터베이스와 관련된 것은 없습니다.

JDBC 4.0 이전에는이 ​​방법으로 드라이버를 초기화해야했습니다. 나는 이것이 효과가 있었기 때문에, 당신은 더 적은 버전을 사용해야 만한다고 생각한다.

+0

예 class.forName (...)을 추가했는데 이제 작동합니다, class.forName은 드라이버 관리자입니까? 이걸 좀 자세히 설명해 주시겠습니까 .. 감사합니다. –

+0

메신저 커넥터/J 5.0.8 –

+1

@RajeshSitaula 왜? 그 버전은 10 살입니다. * 현재 버전을 사용하십시오. – EJP

관련 문제