为什么结果显示failed to connect to database,问号处具体该填什么

  public UserInfoManager(){
        try{
            // 连接MySQL数据库
            Class.forName("com.mysql.jdbc.Driver");
            String url = "jdbc:mysql://localhost:3306/userdb?useSSL=false";
            Connection connection = DriverManager.getConnection(url, "root", "password");
            // 预处理SQL语句
            loginStatement = connection.prepareStatement("SELECT * FROM users WHERE username=? AND password=?");
            updateStatement = connection.prepareStatement("UPDATE users SET email=?, phone=? WHERE username=?");
            passwordStatement = connection.prepareStatement("UPDATE users SET password=? WHERE username=user1 AND password=?");
            registerStatement = connection.prepareStatement("INSERT INTO users (username, password, email, phone) VALUES (?, ?, ?, ?)");

为什么结果显示failed to connect to database,问号处具体该填什么

?是参数占位,与连接数据库失败没有关系。本机安装MySQL并启动没?
设置参数可参考这个:https://blog.csdn.net/m0_61961937/article/details/126931897


在这个连接数据库的URL中,问号?处需要填入useUnicode=true&characterEncoding=utf8,所以正确的URL应该是:
java
String url = "jdbc:mysql://localhost:3306/userdb?useSSL=false&useUnicode=true&characterEncoding=utf8";
useUnicode=true&characterEncoding=utf8这两个参数的作用是:
useUnicode=true:指明使用Unicode字符集
characterEncoding=utf8:设置数据库连接使用的编码方式为UTF-8
这样可以避免连接数据库时出现乱码的问题。
所以修复后的代码应该是:
java
public UserInfoManager(){
    try{
        // 连接MySQL数据库
        Class.forName("com.mysql.jdbc.Driver");
        String url = "jdbc:mysql://localhost:3306/userdb?useSSL=false&useUnicode=true&characterEncoding=utf8";
        Connection connection = DriverManager.getConnection(url, "root", "password");
        // 预处理SQL语句
        loginStatement = connection.prepareStatement("SELECT * FROM users WHERE username=? AND password=?");
        updateStatement = connection.prepareStatement("UPDATE users SET email=?, phone=? WHERE username=?");
        passwordStatement = connection.prepareStatement("UPDATE users SET password=? WHERE username=user1 AND password=?");
        registerStatement = connection.prepareStatement("INSERT INTO users (username, password, email, phone) VALUES (?, ?, ?, ?)");
    } catch (SQLException e) {
        e.printStackTrace();
    } 
}
希望可以解决你的问题!

找找有没有mysql-connector-java-版本号.jar,放到工程里,添加到build path。如果是maven项目就找找有没有加这个dependency。版本号取mysql服务端版本,比如5.7.26?

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^