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

我想做的是:

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

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

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

除一种情况外,一切正常。当用户名本身错误时,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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值