如何解决数据库执行预编译语句爆红问题

问一下,怎么解决PreparedStatement 执行另一条sql语句爆红的问题。
写java代码时,我连接数据库,使用PreparedStatement 执行预编译语句,PreparedStatement 执行的sql语句不能修改吗?
按理说,sql是String类型,我改了呀,可是ps执行时还是会爆红。

img


String sql = "select 1 from userinfo where username=?";
            PreparedStatement ps = connection.prepareStatement(sql);
            ps.setString(1,username);
            ResultSet rs = ps.executeQuery();
            if(rs.next()){
                response.sendRedirect("/reg_have_to_login.html");
                return;
            }
            ps.close();
            sql = "insert into userinfo values (null,?,?,?,?)";
            ps = connection.prepareStatement(sql);
            ps.setString(1,username);
//这里就报红了,虽然仍然能执行,但是一直红在这不好
            ps.setString(2,password);
            ps.setString(3,nickname);
            ps.setInt(4,age);
            int num = ps.executeUpdate();

尝试解决
创建新的变量,新的对象,执行就没问题,难道只能这样吗,这样每一条语句都要新建,太麻烦了

img

重新声明一个String

img


比如

 String sql = "select 1 from userinfo where username=?";
        PreparedStatement ps = connection.prepareStatement(sql);
        ps.setString(1,username);
        ResultSet rs = ps.executeQuery();
        if(rs.next()){
            response.sendRedirect("/reg_have_to_login.html");
            return;
        }
        ps.close();
        String sql1 = "insert into userinfo values (null,?,?,?,?)";
        ps = connection.prepareStatement(sql1);
        ps.setString(1,username);
        ps.setString(2,password);
        ps.setString(3,nickname);
        ps.setInt(4,age);
        int num = ps.executeUpdate();