2011-12-04 28 views
0

我無法工作了,爲什麼java的不能看到我的MySQL驅動我的MySQL驅動程序:爲什麼不能Java請參見

  • 我從MySQL網站下載的驅動程序.jar
  • 我添加的jar到我的運行時類路徑
  • 我可以確認的jar在類路徑中,通過打印出相關的系統屬性

但我仍然得到ClassNotFound的異常。還有什麼我需要做的?

類的例子:

package org.rcz.dbtest; 

import java.sql.*; 

public class DB { 

    private Connection connect = null; 
    private Statement stmt = null; 
    private PreparedStatement prepared = null; 
    private ResultSet rset = null; 
    private String driverClassName = "com.myqsl.jdbc.Driver"; 
    private String jdbcUrl = "jdbc:mysql://localhost/ctic_local?user=root&password=server"; 
    private String queryString; 

    public DB(String query) 
    { 
     System.out.println(System.getProperty("java.class.path")); 
     queryString = query; 
    } 

    public void readFromDatabase() 
    { 
     try 
     { 
      Class.forName(driverClassName); 
      connect = DriverManager.getConnection(jdbcUrl); 
      stmt = connect.createStatement(); 
      rset = stmt.executeQuery(queryString); 
      writeResultSet(rset); 
     } 
     catch (ClassNotFoundException cex) 
     { 
      System.out.println("Could not find mysql class"); 
     } 
     catch(SQLException sqex) 
     { 

     } 
    } 

    private void writeResultSet(ResultSet resultSet) throws SQLException { 
     // ResultSet is initially before the first data set 
     while (resultSet.next()) { 
      // It is possible to get the columns via name 
      // also possible to get the columns via the column number 
      // which starts at 1 
      // e.g. resultSet.getSTring(2); 
      String user = resultSet.getString("name"); 
      String comment = resultSet.getString("comment"); 
      System.out.println("User: " + user); 
      System.out.println("Comment: " + comment); 
     } 
    } 



} 

我的主類簡單地將查詢轉換爲DB類:

package org.rcz.dbtest; 

import java.io.IOException; 

public class Main { 

    public static void main(String[] args) throws IOException 
    { 
     String qstring = "SELECT * FROM comments"; 
     new DB(qstring).readFromDatabase(); 
     System.in.read(); 
    } 

} 
+0

您能給我們提供確切的錯誤嗎? – Max

+0

是的,我的班沒有找到catch語句正在運行 – richzilla

回答

3

您在驅動程序類名稱的拼寫錯誤。

private String driverClassName = "com.myqsl.jdbc.Driver"; 

應該

private String driverClassName = "com.mysql.jdbc.Driver"; 
// -------------------------------------^ 

無關的具體問題,保持數據庫資源,如ConnectionStatementResultSet作爲一個類的實例變量是一個壞主意。您需要在try-finally塊中儘可能最短的範圍內創建,使用和關閉它們以防止資源泄漏。另請參閱此問題/答案:When my app loses connection, how should I recover it?

+0

好了,感謝您的幫助。 – richzilla