sql查询后返回结果,但是返回的时候可能又插入了一条数据,怎么保证我准备返回的时候不会有插入和修改呢

554330833a 发布于 2016/12/08 15:41
阅读 611
收藏 0
RT
加载中
0
蓝水晶飞机
蓝水晶飞机
select with lock
蓝水晶飞机
蓝水晶飞机
补充一下。 使用表级别的锁,或者在你的程序里面做个同步锁(全局的方法调用锁)保证当前系统不会在返回数据的时候发生插入数据。 表级别的锁可以控制在多个系统。
0
螃蟹大叔
螃蟹大叔
就算是锁了,查询完也会有数据插入呀
0
beyondforever68
beyondforever68
那前端收到准备展现的时候又有更新怎么办
0
554330833a
554330833a
其实我想问的是怎么锁。。。
0
张三先生
张三先生
我准备插入 一条记录的时候 ,失败了,代码没问题 怎么办
0
Sel8616
Sel8616

我想了办法,不知道可行否。

现在大家一般都是用Sping,如果同一表的访问都在同一个DAO中,那么把INSERT/UPDATE/SELECT都用synchronized锁到一个对象上。

0
龙上
龙上
事务啊
0
傻傻躺着
傻傻躺着
如果只是做一个查询显示的话,加个锁是不是太重了点
0
魔力猫
魔力猫

只有一个问题,你的业务需求。业务需求需要返回的数据是数据库中多久之前的数据镜像。实际上就是这样,如果是一个不断被变化的记录,那么返回到你眼前的时候,肯定有更新延迟问题。你要做的是确认这个延迟到底可以接受到什么程度,为了克服不能达到你要投入什么成本。

绝大多数情况下,一般业务系统不需要考虑太多这种查询完有更新和插入的问题,即使需要考虑,也可以通过乐观锁、队列等各种办法绕过来保证业务的完整。

返回顶部
顶部