java - java - 如何使用java中的mysql命令制作带有条件的按钮?
问题描述
我正在制作一个预订电影票的应用程序,然后我想通过检查数据库上的几个条件来制作一个用于选择座位号的按钮。我将 JButton 与以下操作一起使用:
private void A1ActionPerformed (java.awt.event.ActionEvent evt) {
try {
Object day = cmbHari.getSelectedItem ();
Object stud = cmbStud.getSelectedItem ();
String sql = "SELECT * FROM message where id_kursi = '" + A1.getText () + "' AND id_film = '" + txtIDFilm.getText () + "' AND start = '" + txtJam.getText () + "' AND day = '"+ day +"' AND studio = '"+ stud +"' ";
Stat statement = conn.createStatement ();
ResultSet result = stat.executeQuery (sql);
if (result.equals (true)) {
JOptionPane.showMessageDialog (null, "Seat has been booked");
} else {
JOptionPane.showMessageDialog (null, "Seat booked");
txtKur.setText ("A1");
}
} catch (SQLException ex) {
Logger.getLogger (belitiket.class.getName ()). Log (Level.SEVERE, null, ex);
}
}
但是即使所有条件都满足,座位也总是可以订购的,但不应订购座位。
编辑:谢谢大家,解决了。
private void A1ActionPerformed(java.awt.event.ActionEvent evt) {
try {
Object hari = cmbHari.getSelectedItem();
String h=hari.toString();
Object stud = cmbStud.getSelectedItem();
String s=stud.toString();
String insert = "select 1 from pesan where id_kursi=? and id_film=? and mulai=? and hari=? and studio=?;";
PreparedStatement ps = conn.prepareStatement(insert);
ps.setString(1, A1.getText());
ps.setString(2, txtIDFilm.getText());
ps.setString(3, txtJam.getText());
ps.setString(4, h);
ps.setString(5, s);
ResultSet rs = ps.executeQuery();
if(rs.next()){
JOptionPane.showMessageDialog(null, "Kursi Sudah Dipesan");
txtKur.setText("");
}else{
JOptionPane.showMessageDialog(null, "Kursi Dipesan");
txtKur.setText("A1");
}
} catch (SQLException ex) {
Logger.getLogger(belitiket.class.getName()).log(Level.SEVERE, null, ex);
}
}
解决方案
ResultSet是一个迭代项,而不是要比较的布尔值。
此外,如果您不需要结果SELECT 1 ...
,则在有项目时使用这种方式会有结果,并且可以在服务器上快速完成,而不是编组不需要的信息。