java.sql.SQLException:对空结果集的非法操作。验证时

天天见闻 天天见闻 2023-03-21 科技 阅读: 116
摘要: m=rs.getString("pass"),Class.forName("com.mysql.jdbc.Driver").newInstance();Connection conn = DriverManager.getConnection("jdbc;mysql;//localhost/authentication;" + "user=root&

如何解决java.sql.SQLException:对空结果集的非法操作。验证时?

您应该使用以下结果rs.next()

            if (rs.next()) {
                n=rs.getString("id");
                m=rs.getString("pass");
            }

如果rs.next()返回false,则表示查询未返回任何行。

解决方法

我想做的是:

  1. 接受用户名(uname)和密码(passw)作为用户输入。

  2. 使用ResultSet,检索唯一的元组,数据库中的用户名和用户适合的用户名均指向该元组。该元组将包含用户名和密码。

  3. 如果用户提供的密码也适合数据库中的密码,则显示以下信息:两种认证均正确,否则其中一种错误。

除一种情况外,一切正常。当用户名本身错误时,mysql将根本找不到该属性,并且会出现此错误:java.sql.SQLException: Illegal operation on empty result set.

代码是:

ok.addActionListener(new ActionListener()
    {
        public void actionPerformed(ActionEvent ae)
        {
            String uname=jf1.getText();
            String passw=jf2.getText();
            String n;
            String m;
            try
            {
                Class.forName("com.mysql.jdbc.Driver").newInstance();
                Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/authentication?" + "user=root&password=letmein");
                PreparedStatement stmt=conn.prepareStatement("Select * from admin where id = ?");
                stmt.setString(1,uname);
                ResultSet rs=stmt.executeQuery();
                rs.next();
                n=rs.getString("id");
                m=rs.getString("pass");
                conn.close();
                if(n.equalsIgnoreCase(uname) && m.equalsIgnoreCase(passw))
                {
                    JOptionPane.showMessageDialog(null,"Username and password is correct");
                }
                else
                {
                    JOptionPane.showMessageDialog(null,"Username or password is not correct");
                }

            }
            catch(Exception ex)
            {
                  System.out.println(ex);
            }
        }//end of actionperformed
    });//end of actionlistener

我有什么办法可以一次完成两个操作(在关闭与数据库的连接之前)?如果没有,有什么替代方法?

其他相关
windows用户名和密码是多少?

windows用户名和密码是多少?

作者: 天天见闻 时间:2023-10-01 阅读: 90
Windows用户名和密码是多少?计算机的用户名和密码都是由用户设置的,系统有默认的用户名administrator,但是没有默认密码的如果不登录,就有两种解决方案:1、重新安装系统。二、恢复电脑出厂设置。1、关机开机或直接点击重启,按&;#34;DELETE&;#34;键,电脑自动进入BIOS...
.faust勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复

.faust勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复

作者: 天天见闻 时间:2023-09-21 阅读: 76
导言: 随着数字时代的快速发展,网络安全威胁也越来越严峻,faust敲诈勒索病毒是一个不容小觑的威胁。在本文91中,数据恢复深入探讨了faust敲诈勒索病毒的特点,揭示了解码方法,同时提供了一种预防攻击的策略,使其在数字世界中更加坚固和安全。数据的重要性不容小觑。您可以添加我们的技术服务号(Shujuxf)。我们将很快响应您的帮助,提供有针对性的技术支持。...

写测评,赢好礼!腾讯云 TDSQL-C 产品征文正式开启

作者: 天天见闻 时间:2023-09-17 阅读: 59
活动相关产品介绍 TDSQL是腾讯云自研的新一代云本地关系型数据库。融合传统数据库、云计算和新硬件技术优势,100%兼容MySQL,为用户提供极致弹性、高性能、高可用、高可靠性、安全的数据库服务。实现超百万QPS高吞吐量、PB级大容量分布式智能存储、Serverless秒级伸缩,帮助企业加快数字化转型。 Serverless服务是腾讯云自研下一代云本地关系型数据库TDSQL-C MySQL版的无服务器架构版本,是全Serverless架构的云本地数据库。Serverless服务根据实际计算和内存资源使用量收取费用,而不是收费,支持腾讯云本地技术惠及用户。...
离线数据仓库与离在线一体化

离线数据仓库与离在线一体化

作者: 天天见闻 时间:2023-06-01 阅读: 113
越来越多的企业通过数据驱动业务发展、优化流程和更多业务创新,推动企业数据向海量、实时化、多样化的趋势演进,具有弹性,按需计费等特征一方面满足了企业降本效的需求,另一方面也满足了企业快速发展的数字业务的需求。离线数据仓库和在线数据仓库正在融合,数据仓库在存储和计算独有节点上并行处理以在线查询为主的模型,包括离线ETL、机器学习、正在发展成为支持在线查询的云原生脱离在线一体化数据仓库。...
美国涉外情报调查法院:fbi多年来非法搜索信息27.8万次

美国涉外情报调查法院:fbi多年来非法搜索信息27.8万次

作者: 天天见闻 时间:2023-05-21 阅读: 139
多年来,美国联邦调查局在美国的外国情报数据库中非法搜索了27.8万条信息。其中包括涉嫌犯罪的美国人信息,美国国家情报监督办公室(ODNI)在调查过程中向个人公布涉外情报调查法院的这一裁决,其中包括FBI-2021年1月6日针对美国犯罪案的国会大厦骚乱和2020年乔治·弗洛伊德被杀引起的示威。储存了有关数字和其他信息。...
美国联邦调查局滥用涉外情报监控数据库

美国联邦调查局滥用涉外情报监控数据库

作者: 天天见闻 时间:2023-05-21 阅读: 101
美国联邦调查局(FBI)利用有争议的涉外情报监控法律,大肆滥用含有美国公民私人通信信息的监控数据库。监控数据库,包含美国公民的个人电子邮件、短信和其他通信信息。该数据库是美国国家安全局根据“涉外情报监视法”第702条第款设立的。FBI人员只有在调查涉外情报相关案件时才有权使用该数据库。联邦调查局人员动用该数据库的次数超过27.8万次,搜索他们查询的数据,不关联涉外信息,当然。...
我来说两句

年度爆文