2015-06-19 71 views
0

嘿,我是java的新手,現在正在學習JDBC。那麼我寫了這個代碼來創建到我的數據庫所在的SQL Server的連接:mysql中的JDBC連接錯誤(ClassNotFoundException)

import java.sql.*; 
    public class Mysql 
    { 
     public static void getmysqlconnection() 
     { 
      try 
      { 
       Connection con = null; 
       Class.forName("com.mysql,jdbc.Driver"); 
       con=DriverManager.getConnection("jdbc:mysql://localhost/EMP","root","password"); 
       System.out.println("connection created"); 

      } 
      catch(SQLException se) 
      { 
       System.out.println("SQl Exception" + se); 


      } 
      catch(ClassNotFoundException e) 
      { 
       System.out.println("ClassNotFoundException" + e); 
      } 
     } 

    public static void main(String args[]) 
     { 
      getmysqlconnection(); 

     } 

} 

但是在編譯它產生以下錯誤: ClassNotFoundExceptionjava.lang.ClassNotFoundException:com.mysql.jdbc。驅動程序

+0

請絕對不要**使用'System.out.println(e)',因爲它依賴['Throwable#getLocalizedMessage'](https://docs.oracle.com/javase/8/docs/ api/java/lang/Throwable.html#getLocalizedMessage--)沒有提供足夠的問題信息。請至少使用'e.printStackTrace()'或使用記錄器來處理您的異常。 –

+1

另外,當使用JDBC 4驅動程序時(MySQL JDBC驅動程序是JDBC 4)**您不需要使用'Class#forName' **,所以基本上只需刪除該行即可。 –

+0

感謝Luiggi您在異常處理方面的建議是一個寶石。但真正的問題是我沒有爲我的jdbc驅動選擇類路徑。我必須選擇它,因爲我正在使用JDBC驅動程序3.嗯,我從環境變量中設置類路徑並且程序工作正常。但是,你能告訴我從cmd設置類路徑的語法嗎? – saurabh095

回答

2

看來你有一個錯字。類名是com.mysql.jdbc.Driver而不是com.mysql,jdbc.Driver(點而不是逗號)。還要確保MySQL JDBC driver Jar位於類路徑中。否則會拋出ClassNotFoundException

+0

thamks manouti。我糾正了錯字。但真正的問題是我沒有爲我的jdbc驅動選擇類路徑。那麼我設置環境變量的類路徑和程序工作。但是,你能告訴我從cmd設置類路徑的語法嗎? – saurabh095

+0

@ saurabh095您通常會執行'java -cp path_to_jars Main'。請參閱http://docs.oracle.com/javase/7/docs/technotes/tools/windows/classpath.html。 – manouti