java删除sql选项消息中的IF-ELSE语句

java删除sql选项消息中的IF-ELSE语句,java,oracle,swing,if-statement,joptionpane,Java,Oracle,Swing,If Statement,Joptionpane,我试图创建一个if语句,但不起作用,如果在jtable中找到isbn book,则显示消息“book”delete“否则“book”not found。有可能吗 private void elimina_libroActionPerformed(java.awt.event.ActionEvent evt) { Connection conn = Connessione.ConnecrDb(); Statement stmt = null; ResultSet e

我试图创建一个if语句,但不起作用,如果在jtable中找到isbn book,则显示消息“book”delete“否则“book”not found。有可能吗

 private void elimina_libroActionPerformed(java.awt.event.ActionEvent evt) {      
   Connection conn = Connessione.ConnecrDb();
   Statement stmt = null;
   ResultSet emps = null;       
      boolean found = false;
    try{          
      if(emps.next()) 
      found= true;
        String sql= "DELETE FROM progetto.libro WHERE isbn =?";  
        pst=(OraclePreparedStatement) conn.prepareStatement(sql);            
        pst.setString (1, txt_isbn.getText());          
        pst.execute();               

    if (!found)
       JOptionPane.showMessageDialog(null, "LIBRO ELIMINATO"); 
   else{    
            JOptionPane.showMessageDialog(null, "BOOK NOT FOUND","ERRORE",jOptionPane.WARNING_MESSAGE); 

    }

    }
    catch (Exception e)
     {
      JOptionPane.showMessageDialog(null,e);
                }    
但是不要工作,你能帮我吗?谢谢

我用这个换代码

Connection conn = Connessione.ConnecrDb();
   Statement stmt = null;
   ResultSet emps = null;

    try{

        String sql= "DELETE FROM progetto.libro WHERE isbn =?"; 

        pst=(OraclePreparedStatement) (PreparedStatement) conn.prepareStatement(sql);            
          pst.setString (1, txt_isbn.getText());          
        int deleted = pst.executeUpdate();               

if (deleted == 0) {

         JOptionPane.showMessageDialog(null, "LIBRO ELIMINATO");
         Update_table(); 


          }else
               JOptionPane.showMessageDialog(null, "LIBRO NON TROVATO");  

    }

    catch (Exception e)
     {
      JOptionPane.showMessageDialog(null,e);

    }    
但是,如果我插入了错误的isbn,则信息为:“图书删除”;如果我插入了正确的isbn,则信息为“图书未找到”;如果我再次插入正确的isbn,则信息为“图书删除”,并且图书从数据库中删除

    pst=(PreparedStatement) conn.prepareStatement(sql);            
    pst.setString (1, txt_isbn.getText());          
    int deleted = pst.executeUpdate();               

    if (deleted == 0) {
    ...
int executeUpdate()引发SQLException

执行此PreparedStatement对象中的SQL语句,其中 必须是SQL数据操作语言(DML)语句,例如 插入、更新或删除;或不返回任何内容的SQL语句, 例如DDL语句

返回: (1)SQL数据操作语言(DML)语句的行数,或(2)不返回任何内容的SQL语句的行数为0


变量
deleted
被解释为错误。此外,对于每个prepareStatement,最好将其关闭,因为您正在联系SQL驱动程序

无需导入Oracle类;JDBC允许独立于供应商

最佳做法是使用try with resources自动关闭pst

String sql = "DELETE FROM progetto.libro WHERE isbn = ?"; 
try (PreparedStatement pst = conn.prepareStatement(sql)) {
    pst.setString (1, txt_isbn.getText());          
    int deletionsCount = pst.executeUpdate();               
    if (deletionsCount > 0) {
        JOptionPane.showMessageDialog(null, "LIBRO ELIMINATO");
        Update_table(); 
    } else {
        JOptionPane.showMessageDialog(null, "LIBRO NON TROVATO");  
    }
}
catch (SQLException e)
{
    JOptionPane.showMessageDialog(null, e);
}

如果(emps.next()),此代码将在此处抛出NullPointerException-
如果(emps.next())
。这是您正在运行的实际代码吗?不工作是什么意思?在创建
emps
实例的地方,当您在itI上调用下一个方法时,它为null。我尝试了您的解决方案,但工作异常。我更新了我的第一篇文章。非常感谢。pst.executeUpdate()将返回许多已删除的行。如果(已删除==0)->未删除任何内容。因此:LIBRO非TROVATO如果(已删除>0)->已删除书籍,则:LIBROELIMINATO@Joeblade啊,对了!!!现在我明白了。事实上,修复代码(反转)现在工作得很好。非常感谢!!!