【发布时间】: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:.你的班级