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