我有一个带有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();
答案 0 :(得分:4)
实现这一目标的一种方法是信任PreparedStatement#executeUpdate
:
返回(1)SQL数据操作语言(DML)语句的行数或(2)0表示不返回任何内容的SQL语句
另一种方法是在执行delete语句之前使用SELECT COUNT(*)
语句。请注意,您可以在单个连接/事务中执行这两项操作,以免影响结果。