2013-03-04 38 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