我该如何解决这个 Java Jdbc 连接错误?
How can I solve this Java Jdbc connection Error?
我写了一个简单的JavaJdbc连接程序。我已经放置了 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 !!
异常包含有用的信息。通过捕获它们并打印 'error!',您将消除此信息。
这不是您处理异常的方式。这是规则:记录它/显示错误不是处理它。所以,不要。
只需在您的主要方法上声明 'throws Exception' 并删除所有 try/catch 内容。使代码更具可读性,现在您可以看到错误的完整详细信息。
如果您必须捕获这些异常,当您真的不知道该怎么做时,catch 块的正确代码是:throw new RuntimeException("Unhandled exception", e);
- 这仍然可以保证您看到所有错误消息和其他详细信息。
一旦你这样做了,错误消息会告诉你哪里出了问题。
替换以下行
} 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.
如果您已成功安装 MySql,那么您得到的这个特殊异常只有很少的原因。 (Class.forName("com.mysql.cj.jdbc.Driver")
不会对您的代码产生任何影响)
这个原因是 -
- You haven't created database
company
is not present in your MySql Database.
- User name for MySql client is not valid.
- Password for user
root
is not correct (You haven't provided)
- MySql server is not started in your system to connect client (Start it before login)
for windows you can run this file
\MySQL\MySQL Server 8.0\bin\mysqld.exe
in order to start it.
请检查所有这些可能性。
我已经用我的数据库试过你的代码,它工作正常,只是检查可能的原因。
我知道了..
我的 wamp Mysql 服务器 url 是 localhost:3308..
但是我在程序里写了3306。。。终于解决了。。谢谢大家的帮助
要与 JDBC 建立连接,您需要将 MySQL 连接器 jar 文件导入您的项目,然后 JDBC 将与数据库建立连接。
我写了一个简单的JavaJdbc连接程序。我已经放置了 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 !!
异常包含有用的信息。通过捕获它们并打印 'error!',您将消除此信息。
这不是您处理异常的方式。这是规则:记录它/显示错误不是处理它。所以,不要。
只需在您的主要方法上声明 'throws Exception' 并删除所有 try/catch 内容。使代码更具可读性,现在您可以看到错误的完整详细信息。
如果您必须捕获这些异常,当您真的不知道该怎么做时,catch 块的正确代码是:throw new RuntimeException("Unhandled exception", e);
- 这仍然可以保证您看到所有错误消息和其他详细信息。
一旦你这样做了,错误消息会告诉你哪里出了问题。
替换以下行
} 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.
如果您已成功安装 MySql,那么您得到的这个特殊异常只有很少的原因。 (Class.forName("com.mysql.cj.jdbc.Driver")
不会对您的代码产生任何影响)
这个原因是 -
- You haven't created database
company
is not present in your MySql Database.- User name for MySql client is not valid.
- Password for user
root
is not correct (You haven't provided)- MySql server is not started in your system to connect client (Start it before login) for windows you can run this file
\MySQL\MySQL Server 8.0\bin\mysqld.exe
in order to start it.
请检查所有这些可能性。
我已经用我的数据库试过你的代码,它工作正常,只是检查可能的原因。
我知道了.. 我的 wamp Mysql 服务器 url 是 localhost:3308.. 但是我在程序里写了3306。。。终于解决了。。谢谢大家的帮助
要与 JDBC 建立连接,您需要将 MySQL 连接器 jar 文件导入您的项目,然后 JDBC 将与数据库建立连接。