【发布时间】:2020-07-08 22:05:21
【问题描述】:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class DbManager {
public static Connection conn = null; // mysql
public static void setMysqlDbConnection() throws SQLException, ClassNotFoundException {
try {
Class.forName("com.mysql.cj.jdbc.Driver");
System.out.println("jdbc:mysql://localhost:3306/testdatabase");
System.out.println("test1");
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/testdatabase", "root", "Password");
System.out.println("test2");
if (!conn.isClosed())
System.out.println("Successfully connected to MySQL server");
} catch (Exception e) {
System.err.println("Cannot connect to database server");
}
}
}
输出是:
jdbc:mysql://localhost:3306/testdatabase
test1
Cannot connect to database server
连接未按预期工作。我已确认已安装 jar 并使用终端上的用户名和密码进行连接。有谁知道我做错了什么?
【问题讨论】:
-
在异常块中添加
e.printStackTrace()。然后在您的问题中添加堆栈跟踪错误 -
setMysqlDbConnection应该是getMysqlDbConnection或带有值的设置器并打印上面评论中提到的堆栈跟踪。 -
@Avarma 您能否提及 mysql 连接器 jar 的名称和版本。由于您没有提到程序通过打印堆栈跟踪导致的错误,因此很难调试。我可以通过您的代码连接到我的数据库。
-
感谢@GolamMazidsajib 让我记住了堆栈跟踪。我完全忘记使用它了。添加时区后问题得到解决。新代码是 "conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/testdatabase?serverTimezone=UTC", "root", "My Password");"感谢 HarryCoder 和 Vishnu Prabhakar 的评论
标签: java mysql selenium dbconnection