为什么会出现如图中的失败?

问题相关代码片:


import java.sql.Connection;
import java.sql.DriverManager;

public class DbUtil {
    
    private String url = "jdbc:mysql://localhost:3306/liburary";    private String username = "root";
    private String password = "Dyh13998672948";
    
    //连接数据库方法
    public Connection getCon() throws Exception {
        //Class.forName("com.mysql.jdbc.Driver");
        Class.forName("com.mysql.cj.jdbc.Driver");
        Connection con = (Connection) DriverManager.getConnection(url, username, password);
        return con;
    }
    //关闭数据库方法
    public void closeCon(java.sql.Connection con) throws Exception {
        
        if(con != null) {
            con.close();
        }
    }

完整的代码包:
链接:https://pan.baidu.com/s/1W05VaD_RIZMJqOo7TuozVQ
提取码:0401
--来自百度网盘超级会员V5的分享

运行时:

img

点击右上角登陆,输入数据库中的用户名密码,出现以下报错,程序不再继续执行

img

请问该如何解决这个问题?

可以在url后加上:

import java.sql.Connection;
import java.sql.DriverManager;

public class DbUtil {
    
    private String url = "jdbc:mysql://localhost:3306/liburary?useUnicode=true&characterEncoding=UTF8&autoReconnect=true&zeroDateTimeBehavior=convertToNull";    private String username = "root";
    private String password = "Dyh13998672948";
    
    //连接数据库方法
    public Connection getCon() throws Exception {
        //Class.forName("com.mysql.jdbc.Driver");
        Class.forName("com.mysql.cj.jdbc.Driver");
        Connection con = (Connection) DriverManager.getConnection(url, username, password);
        return con;
    }
    //关闭数据库方法
    public void closeCon(java.sql.Connection con) throws Exception {
        
        if(con != null) {
            con.close();
        }
    }


jdbc:mysql://localhost:3306/liburary
连接字符串要加上时区