JSP登陆验证SQL数据库时,方法错误,求解。有详细说明

JSP登陆验证SQL数据库时,方法错误,求解。有详细说明

问题描述:

            我自学了一段时间JSP,正在做一个商城练练手。当做到登陆页面时,出现了错误。
为了完成登陆验证,我是这样做的。代码如下:
public class UserManager {

public static void main(String[] args) {
        UserManager entity= new UserManager();
        boolean i=entity.login("赵东", "1");
        System.out.println(i);
        }
public boolean login(String Name, String Pass) {
    boolean exists = false;
    Connection conn = DB.getConn();

    try {
        Statement stmt = conn.createStatement();
        String sql="select * from user where userName='"+Name+"'";
        ResultSet rs = stmt.executeQuery(sql);
        while(rs.next()) {
            String i=rs.getString(3);
            if(i==Pass){
            exists = true;
            }
        }
    } catch (SQLException e) {
        e.printStackTrace();
    }finally{
          try{
               conn.close() ; // 连接一关闭,所有的操作都将关闭
              }catch(Exception e){}
             }
    return exists;

}
}
数据库截图如下:
![图片说明](https://img-ask.****.net/upload/201506/23/1435022089_960547.png)
但是当我运行程序,检验时。一直输出False。。这是为什么。

String i=rs.getString(3);既然是String类型
if(i==Pass)怎么能用“==”判断呢(equals())

出错了吧,如果是sqlserver的话,user是关键字

 String sql="select * from user where userName='"+Name+"'";
 改成
 String sql="select * from [user] where userName='"+Name+"'";

你为啥不直接查询username和password?select * from user where username='' and password='',这样只需要判断是否存在这条记录就可以了。

String i=rs.getString(3);既然是String类型
if(i==Pass)怎么能用“==”判断呢(equals())