2013-03-04 74 views
0

我有一個PreparedStatement的MySQL查詢,刪除基於時間戳條件的行。是否有可能從相同的刪除準備語句中刪除多少行被刪除,還是必須先運行一個單獨的查詢來獲取該數字?這是我的嘗試,但它沒有工作:Java PreparedStatement刪除查詢:顯示刪除的行數?

 PreparedStatement pstmt = conn.prepareStatement(delete, PreparedStatement.RETURN_GENERATED_KEYS); 
     pstmt.setString(1, keyword); 
     pstmt.executeUpdate(); 
     ResultSet rs = pstmt.getGeneratedKeys(); 
     while (rs.next()) 
     { 
      n = rs.getInt(1); 
     } 
     rs.close(); 
     pstmt.close(); 
     conn.close(); 

對不起,我想通了。 int n = pstmt.executeUpdate();

回答

2

一種方式做到這一點會在PreparedStatement#executeUpdate結果被信任:

返回:(1)該行數SQL數據操作語言(DML)語句(2)0 SQL不返回任何內容的語句

另一種方法是在執行delete語句之前使用SELECT COUNT(*)語句。請注意,您可以在單個連接/事務中執行這兩項操作,以不影響結果。

+0

謝謝,這是我發現是最好的,executeupdate – 2013-03-09 21:21:10