【问题标题】:JDBC connection error in mysql (ClassNotFoundException) [duplicate]mysql中的JDBC连接错误(ClassNotFoundException)[重复]
【发布时间】:2015-09-05 22:39:47
【问题描述】:

嘿,我是 Java 新手,现在正在学习 JDBC。好吧,我已经编写了这段代码来创建与我的数据库所在的 sql server 的连接:

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.Driver

【问题讨论】:

  • 永远不要使用System.out.println(e),因为它将依赖Throwable#getLocalizedMessage,而Throwable#getLocalizedMessage无法提供足够的问题信息。请至少使用e.printStackTrace() 或使用记录器来处理您的异常。
  • 另外,当使用 JDBC 4 驱动程序时(MySQL JDBC 驱动程序是 JDBC 4)你不再需要使用 Class#forName,所以基本上只需删除该行即可会没事的。
  • 感谢 Luiggi,您在异常处理方面的建议非常棒。但真正的问题是我没有为我的 jdbc 驱动程序选择类路径。我不得不选择它,因为我使用的是 JDBC 驱动程序 3。好吧,我从环境变量中设置了类路径,程序运行了。但是你能告诉我从 cmd 设置类路径的语法吗?
  • java -cp /path/to/jar:.你的班级

标签: java jdbc


【解决方案1】:

看来你打错了。类名是 com.mysql.jdbc.Driver 而不是 com.mysql,jdbc.Driver(点而不是逗号)。还要确保MySQL JDBC driver Jar 在类路径中。否则ClassNotFoundException 会被抛出。

【讨论】:

  • thamks manouti 。我纠正了错字。但真正的问题是我没有为我的 jdbc 驱动程序选择类路径。好吧,我从环境变量中设置了类路径并且程序工作了。但是你能告诉我从 cmd 设置类路径的语法吗?
  • @saurabh095 您通常使用java -cp path_to_jars Main。见docs.oracle.com/javase/7/docs/technotes/tools/windows/…
猜你喜欢
  • 2014-06-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-28
  • 2012-03-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多