Как сделать кнопки с условиями из команды mysql в java? - PullRequest
1 голос
/ 26 июня 2019

Я подаю заявку на бронирование билета в кино, затем хочу сделать кнопку для выбора номеров мест, проверив несколько условий в базе данных.Я использую 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);
        }
    }                              

1 Ответ

0 голосов
/ 26 июня 2019

ResultSet является итеративным элементом, а не логическим значением для сравнения.

Также, если вам не нужен результат, используйте SELECT 1 ... таким образом, если есть элементбудет результат, и его можно будет быстро выполнить на сервере, а не собирать ненужную информацию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...