2010-12-14 53 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