组合选择和更新语句

时间:2013-07-13 19:14:52

标签: java sqlite

我试图研究这个问题,但我找不到解决方案。 背景:我有一个使用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个项目的列表。

我感谢任何人的帮助。

1 个答案:

答案 0 :(得分: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() - &gt; 将光标移动到此ResultSet对象的第一行。 返回: 如果光标位于有效行上,则为true;否则为false。如果结果集中没有行,则返回false