我已经写了一个简单的Java Jdbc连接程序。我已经把MySQL连接器的jar.我也把classpath放在环境变量中。我也把classpath的环境变量。仍然无法解决这个连接错误。
这是我的代码。
public class check {
public static void main(String[] args) {
System.out.println("-------- MySQL JDBC Connection Demo ------------");
try
{
Class.forName("com.mysql.cj.jdbc.Driver");
}
catch (ClassNotFoundException e) {
System.out.println("MySQL JDBC Driver not found !!");
return;
}
System.out.println("MySQL JDBC Driver Registered!");
Connection connection = null;
try {
connection = DriverManager
.getConnection("jdbc:mysql://localhost:3306/company","root","");
System.out.println("SQL Connection to database established!");
} catch (SQLException e) {
System.out.println("Connection Failed! Check output console");
return;
} finally {
try
{
if(connection != null)
connection.close();
System.out.println("Connection closed !!");
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
输出:
-------- MySQL JDBC Connection Demo ----------
MySQL JDBC Driver Registered!
Connection Failed! Check output console
Connection closed !!
替换以下几行
} catch (SQLException e) {
System.out.println("Connection Failed! Check output console");
return;
}
与
} catch (SQLException e) {
System.out.println("Connection Failed! Check output console");
e.printStackTrace();
}
以便你能得到问题的根本原因。你现在的代码只是在吃这些重要信息。
另外,请删除以下残余的代码。
try
{
Class.forName("com.mysql.cj.jdbc.Driver");
}
catch (ClassNotFoundException e) {
System.out.println("MySQL JDBC Driver not found !!");
return;
}
Class.forName("com.mysql.cj.jdbc.Driver")
从JDBC 4. 0开始就不需要了。
异常包含有用的信息。通过捕获它们并打印'error!',你正在消除这些信息。
这不是你处理异常的方式。这里的规则是:记录它显示错误不是处理它。所以,不要这样做。
只要在你的主方法上声明 "throws Exception",然后删除所有trycatch的东西。这样代码的可读性会提高很多,而且现在你可以看到错误的全部细节。
如果你一定要捕获这些异常,当你不知道该怎么做的时候,正确的捕获块代码是。throw new RuntimeException("Unhandled exception", e);
- 这仍然能保证你看到所有的错误信息和其他细节。
一旦你这样做,错误信息就会告诉你发生了什么问题。
对于这个特殊的Exception,你得到的原因只有几个,如果你已经成功安装了MySql。(Class.forName("com.mysql.cj.jdbc.Driver")
将不会对你的代码产生任何影响)这个原因是--。
- 你还没有建立数据库
company
在您的MySql数据库中不存在。- MySql客户端的用户名无效。
- 用户的密码
root
是不正确的(您没有提供)- MySql服务器在你的系统中没有被启动来连接客户端(在登录前启动它),对于Windows,你可以运行这个文件。
\MySQL\MySQL Server 8.0\bin\mysqld.exe
为了启动它。
请检查所有这些可能性。
我已经用我的数据库试过你的代码,工作正常,只是检查一下可能的原因。
我知道了.我的wamp Mysql服务器的url是localhost:3308.但我在程序中写了3306......终于解决了......谢谢大家的帮助。