2

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

4

1 回答 1

4

一种方法是相信结果PreparedStatement#executeUpdate

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

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

于 2013-03-04T01:39:29.557 回答