0

この問題を調査しようとしましたが、解決策が見つかりません。背景: DB として sqlite を使用する小さな Java プログラムがあります。コードが検索された回数、または行が表示された回数を追跡するために、行カウンターを更新しようとしています。(行が表示されない場合はカウントされません)。私のデータベース テーブルには 3 つの列 {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コードをWebサイトのバージョンで使用していますが、動作します。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 に答える