一、原因分析
原因1:环境配置方面
MySQL版本与驱动版本不匹配。如:MySQL8.0
(8.0版本)搭配 mysql-connector-java-5.1.37.jar
(5.0版本)
原因2:代码方面
驱动类书写有误,驱动类书写分两种:
- 一种是
mysql-connector-java
5.0版本
Class.forName("com.mysql.jdbc.Driver");
String connectionString = "jdbc:mysql://localhost:3306/ecommerce?user=root&password=xxx";
- 一种是
mysql-connector-java
6.0及之后版本驱动类加入:
cj
;
访问mysql的url后加入时区设置:&serverTimezone=UTC
Class.forName("com.mysql.cj.jdbc.Driver");
String connectionString = "jdbc:mysql://localhost:3306/ecommerce?user=root&password=xxx&serverTimezone=UTC";
二、解决方案
第一步:使MySQL版本 与 驱动版本 一致
第二步:根据不同驱动版本使用不同连接数据库方式
(1)组合1:MySQL5.0 + mysql-connector-java-5.0.jar
Class.forName("com.mysql.jdbc.Driver");
String connectionString = "jdbc:mysql://localhost:3306/ecommerce?user=root&password=xxx";
(2)组合2:MySQL8.0 + mysql-connector-java-8.0.jar
Class.forName("com.mysql.cj.jdbc.Driver");
String connectionString = "jdbc:mysql://localhost:3306/ecommerce?user=root&password=xxx&serverTimezone=UTC";