2010-12-14 66 views
3

我想將Java代碼連接到mySQL。這是我得到的錯誤。我不明白爲什麼沒有找到驅動程序,因爲我已將連接器jar放在classpath中。連接mysql和Java的問題

Class Not Found Exception: 
No suitable driver found for jdbc:mysql://localhost/hpdata?user=root&password=12 
3456 
Exception in thread "main" java.lang.NullPointerException 
    at edu.indiana.iucbrf.feature.featurespec.FeatureSpecRDB.open(FeatureSpe 
cRDB.java:122) 
    at edu.indiana.iucbrf.feature.featurespec.FeatureSpecRDB.<init>(FeatureS 
pecRDB.java:66) 
    at edu.indiana.iucbrf.domain.componentfactory.RDBComponentFactory.constr 
uctProblemFeatureSpecCollection(RDBComponentFactory.java:112) 
    at edu.indiana.iucbrf.domain.Domain.<init>(Domain.java:239) 
    at edu.indiana.iucbrf.domain.Domain.<init>(Domain.java:197) 
    at edu.indiana.iucbrf.examples.honeypotRDBTemplate.HDomainRDB.<in 
it>(HDomainRDB.java:56) 
    at edu.indiana.iucbrf.examples.hRDBTemplate.HSystemRDB.set 
upDomain(HSystemRDB.java:198) 
    at edu.indiana.iucbrf.examples.hRDBTemplate.HSystemRDB.<in 
it>(HSystemRDB.java:131) 
    at edu.indiana.iucbrf.examples.hRDBTemplate.HTestClassRDB. 
main(HTestClassRDB.java:65) 

這裏是我的代碼:

private static void flush() { 

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

    try { 

    conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/hpdata?user=root&password=123456"); 

     } catch (Exception e) { 
      System.out.println("Class Not Found Exception:"); 
      System.out.println(e.getMessage());  
     } 
+1

請發佈連接代碼 – 2010-12-14 04:04:19

+0

用代碼更新。 – karikari 2010-12-14 04:22:11

回答

2
try { 
String driverName = "com.mysql.jdbc.Driver"; 
Class.forName(driverName); 

String serverName = "localhost"; 
String mydatabase = "hpdata"; 
String url = "jdbc:mysql :// " + serverName + "/" + mydatabase; 

String username = "root"; 
String password = "123456"; 
connection = DriverManager.getConnection(url, username, password); 
} catch(Exception e) { 
// appropriate action 
} 
1

嘗試使用它通過結合這條線之前加載驅動程序。

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

確保mysql-connector-java-<version-number>-bin.jar位於您的類路徑中。如果你沒有它,你可以download it here

1

你假設你已經正確設置了CLASSPATH。請解釋你是如何做的,以便我們告訴你它是否正確。

如果您設置了一個名爲CLASSPATH的環境變量,那幾乎肯定是錯誤的。

如果您的應用程序用於網絡或桌面,它會有所不同。請告訴我們哪些對您是真實的。

UPDATE:

設置CLASSPATH的桌面應用程序的正確方法是使用-classpath選項在JVM上,當你運行:

java -classpath .;<paths-to-your-JARs-separated-by-semi-colons>;<paths-to-the-root-of-package-trees> foo.YourCode 
+0

我的電腦>屬性>環境變量>類路徑> C:\ .jar – karikari 2010-12-14 06:59:36

1

設置CLASSPATH後,請複製mysql-connector-java-5.1.16-bin到這些文件夾中:

C:\Program Files\Java\jdk1.6.0_18\jre\lib\ext 

and

C:\Program Files\Java\jre6\lib\ext