能解释一下这段代码吗

    User resultUser=null;
    String sql="select * from t_user where userName=? and password=?";
    PreparedStatement pstmt=con.prepareStatement(sql);
    pstmt.setString(1, user.getUserName());
    pstmt.setString(2, user.getPassword());
    ResultSet rs=pstmt.executeQuery();
    if(rs.next()){
        resultUser=new User();
        resultUser.setUserId(Integer.parseInt(rs.getString("userId")));
        resultUser.setUserName(rs.getString("userName"));
        resultUser.setPassword(rs.getString("password"));
        resultUser.setRole(Integer.parseInt(rs.getString("role")));
    }
    return resultUser;
}

执行sql查询语句,参数username和password, if(rs.next()){判断是否有数据,有把查询的结果设置到resultUser=new User(); 返回 resultUser

根据用户名和密码过去用户信息

用户名密码输入正确后,返回userId,userName,password,role的值

这个是判断登录信息是否正确,正确就登陆

User resultUser=null;//设定接收实体为空
String sql="select * from t_user where userName=? and password=?";//查询账户和密码的sql语句
PreparedStatement pstmt=con.prepareStatement(sql);//sql放入从中
pstmt.setString(1, user.getUserName());//对sql添加参数
pstmt.setString(2, user.getPassword());
ResultSet rs=pstmt.executeQuery();//执行sql
if(rs.next()){
    resultUser=new User();
    resultUser.setUserId(Integer.parseInt(rs.getString("userId")));
    resultUser.setUserName(rs.getString("userName"));
    resultUser.setPassword(rs.getString("password"));
    resultUser.setRole(Integer.parseInt(rs.getString("role")));
}//以上代码标示从数据库如果查询到数据就把他填写回实体类
return resultUser;、、//返回实体类

}
//看代码我不反对,但是原理得清楚再看啊!这样漫无目的的提问也很难提高啊!加油