2014-03-30 61 views
0

我已經瀏覽了其他人詢問的幾個問題,還沒有設法找到解決這個問題的方法。「沒有合適的驅動程序jdbc:mysql ...」錯誤

我創建的程序是使用Jsoup和MySQL的Java中的網絡爬蟲。目前我在Windows上使用Sublime進行編程。 (在Eclipse中遇到問題並且厭倦了與之交戰)

當我嘗試在爬蟲程序中建立連接時,該程序正在中斷,但同樣的過程在我的測試程序中基本上完全相同的過程中正常工作。

下面是代碼的片段中的問題:

public void openConnection() throws SQLException, IOException 
{ 
    System.out.print("Opening connection...\n"); 
    String drivers = props.getProperty("jdbc.drivers"); 
    if (drivers != null) System.setProperty("jdbc.drivers", drivers); 
    String url = props.getProperty("jdbc.url"); 
    String username = props.getProperty("jdbc.username"); 
    String password = props.getProperty("jdbc.password"); 
    maxUrls = Integer.parseInt(props.getProperty("crawler.maxurls")); 

    System.out.print("Connection line...\n"); 
    //connection is a global 
    connection = DriverManager.getConnection(url, username, password); 
} 

隨着性質是這樣的:

database.properties 
jdbc.url=jdbc:mysql://localhost:3306/webdata 
jdbc.username=root 
jdbc.password=passwordofsomedescription 
crawler.maxurls=100 
crawler.domain=somewebsite.com 
crawler.root=http://www.somewebsite.com 

而對於兩個這種運行命令和測試程序在下面的:

RunCrawler.bat

java.exe -classpath ".;./mysql-connector-java-5.1.29-bin.jar;./jsoup-1.7.3.jar" Crawler

RunTestDB.bat

java.exe -cp ".;./mysql-connector-java-5.1.29-bin.jar" TestDB

任何幫助將不勝感激。 Crawler需要同時使用mySQL和Jsoup。 testDB沒有。

此外,這兩個程序編譯正常。編譯類路徑不提供任何錯誤(如下圖所示)

makeCrawler.bat

javac -classpath "./mysql-connector-java-5.1.29-bin.jar;./jsoup-1.7.3.jar" Crawler.java

回答

0

您正在閱讀該文件中的驅動程序屬性,但它似乎並沒有被定義。

而且您不指示DriverManager使用特定的Driver連接到數據庫。

建議1

改變你的屬性文件,包括驅動程序屬性,如下圖所示。

database.properties 
jdbc.url=jdbc:mysql://localhost:3306/webdata 
jdbc.username=root 
jdbc.password=passwordofsomedescription 
crawler.maxurls=100 
crawler.domain=somewebsite.com 
crawler.root=http://www.somewebsite.com 

# Add this line new 
jdbc.drivers=com.mysql.jdbc.Driver 

建議2

添加驅動程序屬性文件後,
讓JVM知道要使用特定的驅動程序的數據庫連接。

Class.forName(drivers); 

:如果您正在使用JDBC 4.0或更高版本,則此調用是可選的。

+0

哇...我覺得格外愚蠢。第一個建議似乎已經奏效。非常非常感謝你。編輯:等等......它可能沒有奏效。試着別的。至少現在以不同的方式出現錯誤。 – user3479017

相關問題