Mysql命令执行没结果

package Mysql;


import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.awt.*;
import java.util.Scanner;

class DataBase {
    public final static String url="jdbc:mysql://localhost:3306/datauser?serverTimezone=GMT";
    public final static String username="root";
    public final static String password="password";
    public static void main(String[] args) {
         System.out.print("请输入id:");
         Scanner scanner=new Scanner(System.in);
         String id= String.valueOf(scanner.nextInt());
        try {
            Class .forName("com.mysql.cj.jdbc.Driver");
        }catch (Exception e) {
            e.printStackTrace();
        }
        try {
            Connection connection=DriverManager.getConnection(url,username,password);
            Statement stmt =connection.createStatement();
            String  sql="SELECT * FROM user\r\n" +
                    "WHERE id='"+id+"';";
            ResultSet rs =stmt.executeQuery(sql);
            while(rs!=null && rs.next()){
                String mm=rs.getString(1);
                System.out.println("ID为"+id+"的账号的密码是:"+mm);
            }
        }catch (Exception e) {
            e.printStackTrace();
        }
    }

}

输入id后没有输出查询结果
但是如果去掉输入部分,直接在sql命令里添上id=001会返回结果

String sql="SELECT * FROM user\r\n" +
"WHERE id='"+id+"';";
改为
String sql="SELECT * FROM user WHERE id='"+id+"'";

在请输入id下方输入id,然后打印一下sql, 不要给sql加转义符了,直接把sql改为"select * from user where id='"+id+"' "

img

就是这个样子,之前我好像也是这样写的,但是原来的项目删了,重写就一直没结果