2015-06-19 144 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