0

我试图研究这个问题,但是我找不到解决方案。背景:我有一个使用 sqlite 作为其数据库的小型 java 程序。我正在尝试更新行计数器以跟踪搜索代码的次数或显示行的次数。(如果一行未显示,则不计算在内)。我的数据库表有三列 {Codes, Description, ItemCount}

这是我用来获取一行的代码

     private void SrchCodeActionPerformed(java.awt.event.ActionEventevt)               {                                         
   String sql =  "SELECT * FROM emdcodes WHERE Codes like ?"; // SQL command

try {ps = conn.prepareStatement(sql);

ps.setString(1, EMDCODELOOKUP.getText() + "%");        
rs = ps.executeQuery();
ResultsTable.setModel(DbUtils.resultSetToTableModel(rs)); 
} catch (Exception e) {
        JOptionPane.showMessageDialog(null, e);
    }    }                                  

我在网站版本上使用这个 sql 代码,它可以工作。它是用 PHP 编写的。

    $sqlcount = mysql_query("update emdcodes SET ItemCount = ItemCount +1 Where       Codes        like '$term%'");

我的问题是我将在哪里以及如何将计数器代码添加到 java 程序中。计数器的目的是维护搜索的前 5 个项目的列表。

我感谢任何人的帮助。

4

1 回答 1

0

我不确定这是否正是您要寻找的...

    private void SrchCodeActionPerformed(java.awt.event.ActionEventevt)               { 
       if (counter <= 5)  {                               
       String sql =  "SELECT * FROM emdcodes WHERE Codes like ?"; // SQL command

       try {ps = conn.prepareStatement(sql);

       ps.setString(1, EMDCODELOOKUP.getText() + "%");        
       rs = ps.executeQuery();
       if (rs.first()){
          counter++;
       }
       ResultsTable.setModel(DbUtils.resultSetToTableModel(rs)); 
       } catch (Exception e) {
            JOptionPane.showMessageDialog(null, e);
       }    
  }   
}    

first()-> 将光标移动到此 ResultSet 对象的第一行。返回: 如果光标在有效行上,则返回 true;如果结果集中没有行,则为 false

于 2013-07-13T19:27:51.083 回答