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

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

        用过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="密码错误,请重新输入";

}

}

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 本人的环境为Myeclipse10、MySQL5.7.15 本文包括:简介JDBC编程步骤打通数据库程序详解—Dr...
    廖少少阅读 9,655评论 7 39
  • JDBC简介 SUN公司为了简化、统一对数据库的操作,定义了一套Java操作数据库的规范,称之为JDBC。JDBC...
    奋斗的老王阅读 5,439评论 0 51
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,174评论 19 139
  • jdbc简介 JDBC(Java DataBase Connectivity)就是Java数据库连接,说白了就是用...
    子约nan阅读 1,738评论 0 0
  • “你可以从我背上下去吗?”一个站在路灯下的人看着自己的影子。 夜晚的影子很长,有时还可分为三个自己。 只是这次,只...
    nicheng随阅读 1,796评论 0 0

友情链接更多精彩内容