美文网首页
JDBC连接数据库,通过判断ResultSet集合是否有值来判断

JDBC连接数据库,通过判断ResultSet集合是否有值来判断

作者: 遇见空城 | 来源:发表于2017-06-27 14:28 被阅读0次

            现在,很多网站在人们进行登录的时候,只会提示用户登录名或密码错误,但是不会准备提示用户究竟是用户名还是密码错误,那么,在这里,我分享一个方法,可以明确定位到究竟是用户名不存在还是用户输入的密码不对。

            用过JDBC的人相信都应该知道,我们通过执行一条查询sql语句会得到一个ResultSet集合,以登录为例,我们获取到用户填入的用户名(下文称username),密码(下文称password),通过username去查询用户表,select * from user where user_name = ‘username’,这时,我们会得到一个ResultSet集合对象rs,可能有人会认为,要是rs为空的话,就说明此用户名不存在,也就是说未注册,但是这个判断是行不通的,即使用户不存在,rs也是不会为空的,那么应该怎么判断呢?答案就是rs.next()方法,如果rs.next()方法返回值为false的话,说明该用户未注册,此时可以提示用户前往进行注册,但是由于next方法调用之后,把光标移动了,此时再调用while(rs.next()) {}并在循环中取字段值的时候便取不出值了,这个问题应该怎么解决呢,其实很简单,我们在调用while循环之前,调用一下rs.beforeFirst()将光标移动到最开始的位置就可以了。判断的代码如下:

    if(!rs.next()) {// 说明该用户未注册

    result="用户名不存在,请先进行注册";

    }else{

    rs.beforeFirst();// 将光标移动到第一行之前

    while(rs.next()) {// 说明该用户已注册

    Stringpassword=rs.getString("password");

    if(password.equals(user.getPassword())) {

    result="登录成功";

    }else{

    result="密码错误,请重新输入";

    }

    }

    }

    相关文章

      网友评论

          本文标题:JDBC连接数据库,通过判断ResultSet集合是否有值来判断

          本文链接:https://www.haomeiwen.com/subject/cjkecxtx.html