我编写了一个简单的Jdbc连接程序。我把MySQL连接器的罐子放了。我还在环境变量中添加了类路径。还是解决不了这个连接错误。
这是我的密码:
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 !!发布于 2020-04-27 15:23:20
替换以下行
} 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;
}从JDBC4.0开始就不需要Class.forName("com.mysql.cj.jdbc.Driver")了。
发布于 2020-04-27 15:04:43
异常包含有用的信息。通过捕捉它们并打印“错误!”,您将消除此信息。
这不是处理异常的方法。这里的规则是:记录它/显示错误并不能处理它。所以,不要。
只需在您的主方法上声明“抛出异常”,并删除所有的尝试/捕获内容。使代码更加可读性更强,现在您可以看到错误的全部细节。
如果您必须捕获这些异常,那么当您不知道该做什么时,catch块的适当代码是:throw new RuntimeException("Unhandled exception", e); --这仍然可以保证您看到所有错误消息和其他细节。
一旦你这样做了,错误信息就会告诉你出了什么问题。
发布于 2021-03-06 07:38:34
要与JDBC建立连接,需要将MySQL连接器jar文件导入到项目中,然后JDBC将与数据库建立连接。
https://stackoverflow.com/questions/61461879
复制相似问题