java - If Else - Else 在 Java Netbeans 中无法正常工作
问题描述
我想寻求帮助。我在 if-else 中的 else 不像我想要的那样工作。如果条件工作正常,但是当我进行其他测试时,如果没有任何反馈,它就无法工作,因为我在 else 中创建了 JOptionPane.show.Message。
private void BtnMasukActionPerformed(java.awt.event.ActionEvent evt) {
try {
sql = "SELECT * FROM kasir WHERE username='" + TxtUser.getText() + "' AND password='" + TxtPass.getText() + "'";
try {
rs = stm.executeQuery(sql);
} catch (SQLException ex) {
Logger.getLogger(login.class.getName()).log(Level.SEVERE, null, ex);
}
try {
while (rs.next()) {
setNama(rs.getString("nama_kasir"));
setHak(rs.getString("hak_akses"));
if (TxtUser.getText().equals(rs.getString("username")) && TxtPass.getText().equals(rs.getString("password"))) {
JOptionPane.showMessageDialog(null, "Anda Berhasil Login");
this.dispose();
new home().setVisible(true);
} else {
JOptionPane.showMessageDialog(null, "Maaf, Username atau Password Anda Salah");
}
break;
}
} catch (SQLException ex) {
Logger.getLogger(login.class.getName()).log(Level.SEVERE, null, ex);
} catch (HeadlessException e) {
JOptionPane.showMessageDialog(this, e.getMessage());
} catch (ClassNotFoundException ex) {
Logger.getLogger(login.class.getName()).log(Level.SEVERE, null, ex);
}
} catch (HeadlessException e) {
}
}
解决方案
这是一个非常非常糟糕的做法
"SELECT * FROM kasir WHERE username='" + TxtUser.getText() + "' AND password='" + TxtPass.getText() + "'";
因为任何人都可以注入一个 sql。检查此图像。改为使用prepared statements
。
回答你的问题。首先,您正在执行的查询是搜索 USER 和 PASSWORD。因此,如果您设置了错误的密码,它将不会返回任何内容。
if (!resultSet.isBeforeFirst() ) {
System.out.println("USer not found, or incorrect password");
} else
{
while (rs.next()) {
setNama(rs.getString("nama_kasir"));
setHak(rs.getString("hak_akses"));
if (TxtUser.getText().equals(rs.getString("username")) && TxtPass.getText().equals(rs.getString("password"))) {
JOptionPane.showMessageDialog(null, "Anda Berhasil Login");
this.dispose();
new home().setVisible(true);
}
break;
}
}
推荐阅读
- python - 从雅虎财经中提取期权日期
- sql - 使用 CASE WHEN 和 IN 和 LIKE 运算符对数据进行分类的多个条件
- android - 在非活动类中使用 koin 时未找到 bean
- reactjs - 使用 React Hooks 时更新表单字段
- java - JavaCV FFmpegFrameGrabber & Java2DFrameConverter 创建奇怪的图像
- r - 转换序列日期
- python - Pandas:如何控制其中包含数组/列表的列的显示选项?
- node.js - 如何在猫鼬模式中自定义验证错误的输出?
- react-native - React Native FlatList 中的动态高度调整大小
- python-3.x - 字符串索引超出范围/无效语法