提问人:janet 提问时间:7/25/2023 最后编辑:Abrajanet 更新时间:7/26/2023 访问量:69
如何在 while 循环 java 中检查条件
How to check for a condition within a while loop java
问:
String valChecker = "SELECT * FROM `committee_memba` where (Rank= 'Chairperson' or Rank='Vice-Chair') and committee_name='" + jComboBox1.getSelectedItem().toString() + "'";
System.out.println(valChecker);
PreparedStatement stmt = conn.prepareStatement(valChecker);
rs = stmt.executeQuery();
while (rs.next()){
String rnk = rs.getString("Rank");
System.err.println(rnk);
if ((rnk.equals("Chairperson") && rank.equals("Chairperson")) || (rnk.equals("Vice-Chair") && rank.equals("Vice-Chair"))) {
JOptionPane.showMessageDialog(rootPane, "Your Rank, " + rank + " already Exist, please review your membership or remove "+rank+" before adding another");
else {
pst.setString(3, rank);
pst.execute();
JOptionPane.showMessageDialog(this, "Saved, OK");
}
Select 查询检查主席和副主席的现有级别,效果很好。
当且仅当具有上述头衔的候选人不存在时,我想与主席或副主席一起保存新记录,也就是说,您只能有一个主席或副主席,但我的报告很好,但用于插入的 pst.execute() 仍在工作,尽管给出了错误消息。JOPtionpane
JOptionpane
答:
0赞
deft artisan
7/25/2023
#1
如果您不希望使用标志,请抽象为布尔方法,并使用 return 语句退出第一个条件。
或者,您可以使用 which 会中断。JOptionPane.showConfirmMessageDialog(rootPane, "Your Rank, " + rank + " already Exist, please review your membership or remove "+rank+" before adding another", JOptionPane.YES_NO_CANCEL_OPTION)
0赞
Maurice Perry
7/25/2023
#2
首先,使用参数化查询,而不是在 SQL 中硬编码参数:
String valChecker = "SELECT * FROM `committee_memba` where Rank= ? and
committee_name=?";
PreparedStatement stmt = conn.prepareStatement(valChecker);
stmt.setString(1, rank);
stmt.setString(2, jComboBox1.getSelectedItem().toString());
rs = stmt.executeQuery();
现在,如果您只想在添加排名之前测试排名是否已经在表中,您只需要检查:
boolean exists = rs.next();
stmt.close();
if (exists) {
JOptionPane.showMessageDialog(rootPane, "Your Rank, " + rank + " already Exist, please review your membership or remove "+rank+" before adding another");
} else {
pst.setString(3, rank);
pst.execute();
JOptionPane.showMessageDialog(this, "Saved, OK");}
}
0赞
janet
7/26/2023
#3
如果有人遇到我遇到的问题,我很乐意分享我在这个论坛之外得到的帮助,也许它可以拯救某人
String valChecker = "SELECT * FROM `committee_memba` where Rank= '"+rank+"' and committee_name='"+ jComboBox1.getSelectedItem().toString() + "'";
PreparedStatement stmt = conn.prepareStatement(valChecker);
rs = stmt.executeQuery();
if (rs.next() && (rank.equals("Chairperson") || rank.equals("Vice-Chair"))) {
JOptionPane.showMessageDialog(rootPane, "Your Rank, " + rank + " already Exist, please review your membership or remove " + rank + " before adding another");
} else {
pst.setString(3, rank);
pst.execute();
JOptionPane.showMessageDialog(this, "Saved, OK");
}
上一个:分配不带特定索引的数组值
评论
while
boolean exists = false;
rs.next() && !exists
exists
true
valChecker
committe_name = ?
PreparedStatement
committee_memba
JOptionPane