2 dora 310 dora_310 于 2015.06.23 09:15 提问

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;

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

5个回答

lingfengzx
lingfengzx   2015.06.23 10:35
已采纳

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

dora_310
dora_310 可以了。。看来还是基础不够好。谢谢
2 年多之前 回复
dora_310
dora_310   2015.06.23 09:17

图片说明

danielinbiti
danielinbiti   Ds   Rxr 2015.06.23 09:18

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

 String sql="select * from user where userName='"+Name+"'";
 改成
 String sql="select * from [user] where userName='"+Name+"'";
danielinbiti
danielinbiti 回复dora_310: 你的看看你的SQL执行报出来的错误是什么
2 年多之前 回复
dora_310
dora_310 应该不是这个错误。刚才我在数据库里进行了验证。加了[]汇报错。而没有加却正常运行了。。朋友再帮我看看。
2 年多之前 回复
bulusli3
bulusli3   Ds   Rxr 2015.06.23 10:11

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

dora_310
dora_310 其实我刚开始就是那样做的。报错了,我就改了,这个到没有报错就是结果错误
2 年多之前 回复
lingfengzx
lingfengzx   2015.06.23 10:35

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

Csdn user default icon
上传中...
上传图片
插入图片