java - 为什么我的程序没有通过 Java 检查 MySQL 中除第一个之外的行中的数据?
问题描述
信息:
MySQL 工作台 8.0 CE
面向 JAVA 开发人员的 Eclipse IDE 2020-03
数据库名称:数据库
表名:数据
我正在尝试制作一个可以连接到 MySQL 数据库并充当登录表单的 Java 程序。存在一个问题,即程序只能随机验证第一行或最后一行,而无法验证它们之间的行。开头总共有 4 行。这是我的代码:
Connection conn 在构造函数中声明,并通过另一个返回它的类获取连接。
public void actionPerformed(ActionEvent e) {
try
{
Statement st=conn.createStatement();
ResultSet rs=st.executeQuery("select * from data");
while(rs.next())
{
String usnm=rs.getString("username");
String pswd=rs.getString("password");
String mo=rs.getString("ph.no.");
if(usnmf.getText().equals(usnm)&&pswdf.getText().equals(pswd))
{
flag=1;
break;
}
if(usnmf.getText().equals(mo)&&pswdf.getText().equals(pswd))
{
flag=2;
break;
}
if(!usnmf.getText().equals(usnm)&&!pswdf.getText().equals(pswd)||!usnmf.getText().equals(mo)&&!pswdf.getText().equals(pswd))
{
flag=0;
break;
}
}
}
catch(Exception ex)
{
JOptionPane.showMessageDialog(null, "Error :"+ex);
}
if(flag==1)
{
try
{
PreparedStatement pst=conn.prepareStatement(sql1);
pst.setString(1, usnmf.getText());
ResultSet rs=pst.executeQuery();
if(rs.next())
{
name=rs.getString("name");
}
JOptionPane.showMessageDialog(null, "Login Successful... Welcome "+name);
}
catch(Exception ex)
{
JOptionPane.showMessageDialog(null, "Error: "+ex);
}
}
else if(flag==2)
{
}
else if(flag==0)
JOptionPane.showMessageDialog(null, "Invalid Login Info.");
这里的 usnmf 和 pswdf 分别是用户名和密码的文本字段。用户名字段应作为单独列中的用户名和电话号码的字段。电话号码字段的数据类型不切实际是 varchar 并且在没有散列的情况下检查密码。这只是开始。但是当我为任何字段输入正确的数据时,程序会显示无效的登录信息,除非数据属于第一行或最后一行。不幸的是,这也是随机的。有时,只有第一行数据显示正确,有时,只有最后一行数据。
我的代码中有错误吗?请帮助我,因为经过一次又一次的彻底重新检查,我非常沮丧。
解决方案
对严重的愚蠢感到抱歉,但解决方案只是删除使用 not(!) 条件的中断形式。如果程序在第一行中没有找到匹配项,则循环中断并显示无效信息消息。
推荐阅读
- firebase - Firebase 云功能只能从“后端”调用
- c++ - 为什么我的字体编码不起作用,尽管设置了“setlocale(LC_ALL, “Turkish”);”?
- gradle - Intellij Gradle 禁用离线模式
- sql - 如何从表中仅选择顶部和底部行
- postgresql - 没有 pg_dump 的 PostgreSQL 提取结构 (DDL)
- c# - 如何让 MotionEventActions.Up 被调用?
- java - Selenium java 中的 Click() 看起来像“点击”了,但没有任何反应。在 IE 浏览器中
- salesforce - Google reCaptcha:无法及时验证
- reactjs - reactjs,将道具从一个组件发送到另一个组件
- maven - 如何对多个 Maven 项目进行版本控制?