连接数据库的时候,一个看起来没有问题的代码,如下:
package db;
import java.sql.*;
//创建不拼接字符串的crud方式
public class SqlDbHelper {
private String driverName = "com.mysql.jdbc.Driver";
private String dbURL = "jdbc:mysql://localhost:3306/personmanagerDB";
private Connection dbConn = null;
private PreparedStatement stmt = null;
private ResultSet rs = null;
private String user = "root";
private String pass = "root";
public SqlDbHelper() { // 构造方法调用数据库连接。一旦创建对象,数据库建立连接
this.getConnection();
}
public void getConnection() {
try {
Class.forName(driverName);
dbConn = DriverManager.getConnection(dbURL, user, pass);
System.out.println("连接数据库成功");
} catch (Exception e) {
e.printStackTrace();
System.out.print("连接失败");
}
}
public static void main(String[] args) {
SqlDbHelper sq=new SqlDbHelper();
sq.getConnection();
}
}
却报错,如下图:
方案一
关于MySql升级JDBC架包导致时区问题报错(The server time zone value ‘?й???’ is unrecognized or represents more than one time zone)
在dbURL后面加上?serverTimezone=UTC
修改后为private String dbURL = "jdbc:mysql://localhost:3306/personmanagerDB?serverTimezone=UTC";
即可连接成功
方案二
这种情况出现的时候你会发现自己电脑上的时间和手机上的时间存在出入,(手机的时间是通过联网更新的。)我们只需要在电脑的设置当中打开自动设置时区就可以了。再一次运行将不再报错。