我应该使用 executeUpdate 还是执行以使用 Anorm 删除一行?

Should I use executeUpdate or execute to delete a row with Anorm?

我正在使用 Anorm,我想知道当我只需要删除一行时最好使用哪种解决方案(例如这里我知道字段 eventId 是唯一的)。

SQL("DELETE FROM events WHERE eventId = {eventId}")
   .on('eventId -> eventId)
   .executeUpdate()

并测试 返回值是否为 1 或者,将此版本与 execute() 一起使用:

 SQL("DELETE FROM events WHERE eventId = {eventId}")
    .on('eventId -> eventId)
    .execute()

并测试返回值是否为真 ?

有什么不同吗?

来自.execute的布尔值并不表示它是否成功,而是它是否执行了查询或更新。

使用.executeUpdate,结果是updated/deleted行的计数。如果目标是检查执行是否更改了某些内容,那么 .executeUpdate 很有用。