Java PreparedStatement删除查询:显示已删除的行数?

时间:2013-03-04 01:34:34

标签: java mysql database prepared-statement

我有一个带有MySQL查询的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();

1 个答案:

答案 0 :(得分:4)

实现这一目标的一种方法是信任PreparedStatement#executeUpdate

的结果
  

返回(1)SQL数据操作语言(DML)语句的行数或(2)0表示不返回任何内容的SQL语句

另一种方法是在执行delete语句之前使用SELECT COUNT(*)语句。请注意,您可以在单个连接/事务中执行这两项操作,以免影响结果。