电脑桌面
添加蚂蚁七词文库到电脑桌面
安装后可以在桌面快捷访问

java同步,实现insert的唯一性

来源:金蝶云社区作者:金蝶2024-09-163

java同步,实现insert的唯一性

业务流程:查询表中是否有某条记录,如果没有就insert,如果存在就update.

问题1:在执行insert的过程中,因为有多个对象对一个表进行select操作,对象A先执行select操作,查询表中没有该条数据,再去执行insert。但是对象B在对象A还没有执行完insert操作的过程中,就去执行select操作,也发现没有该条数据,执行insert操作。最后结果可想而知,插入了多条id相同,其他字段不同的数据。

解决:使用同步(synchronized)。

synchronized的参数:class。我将(dao层接口名.class)作为参数————(说实话我这里也没太搞明白 ,接口为啥能.class希望大佬能解答我的问题)。

这样一来每个对象只能等待上个对象处理完insert等一系列操作,才会解锁并交给下个对象去执行。保证了insert的唯一性。

image.webp

 

小拓展:

1.synchronized也可以作为修饰符放在方法,对象上,如果它作用的对象是非静态的,则它取得的锁是对象;如果synchronized作用的对象是一个静态方法或一个类,则它取得的锁是对类,该类所有的对象同一把锁

java同步,实现insert的唯一性

业务流程:查询表中是否有某条记录,如果没有就insert,如果存在就update.问题1:在执行insert的过程中,因为有多个对象对一个表进行select...
点击下载文档文档为doc格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

已经是第一篇
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息
QQ群
  • 答案:my7c点击这里加入QQ群
支持邮箱
微信
  • 微信