接口幂等性数据库乐观锁实现
场景最简单的一种方式
直接上示例代码
// 根据订单号查询订单是否存在
步骤1、Order order = orderService.getOrder(orderNo);
// 判断状态是否成功
步骤2、if (order!=null && !order.getStatus().equalsIgnoreCase("success")){
步骤3、 // 更新订单成功,以及后续业务逻辑等等
}
执行的sql
select id,account,status,version from order where id = 1338; // 假设获得的 version = 10
update `order`
set status = #{status,jdbcType=VARCHAR},version=version+1
where id = #{id,jdbcType=INTEGER}
and version=#{version,jdbcType=INTEGER}