一种基于SpringBoot+JPA的数据库乐观锁实现方法及系统技术方案

技术编号:23161621 阅读:34 留言:0更新日期:2020-01-21 21:58
本发明专利技术公开了一种基于SpringBoot+JPA的数据库乐观锁实现方法及系统,属于数据库领域,本发明专利技术要解决的技术问题为如何利用乐观锁避免并发情况下向数据库中定时插入数据过程中造成数据重复,采用的技术方案为:该方法步骤如下:S1、创建lock_table表:在数据库中新建一张lock_table表,lock_table用于存放锁的数据信息;S2、操作加锁:将并发事务操作加锁,在数据库中的lock_table表中增加该锁的数据信息;具体如下:S201、获取锁:查询lock_table表获取锁的信息,确保对应的进程获取该锁;S202、执行事务:对应进程进行继续执行,完成对数据库的事务操作;S203、释放锁:事务执行结束后,对应进程更新对应锁的版本号为当前日期,状态更新为未锁定,操作结束。该系统包括lock_table表创建模块和加锁操作模块。

A database optimistic lock implementation method and system based on springboot + JPA

【技术实现步骤摘要】
一种基于SpringBoot+JPA的数据库乐观锁实现方法及系统
本专利技术涉及数据库领域,具体地说是一种基于SpringBoot+JPA的数据库乐观锁实现方法及系统。
技术介绍
SpringBoot是Java平台上的一种开源应用框架,提供具有控制反转特性的容器。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。JPA是JavaPersistenceAPI的简称,中文名Java持久层API,是JDK5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中。并发是指多个执行单元同时、并行被执行,而并发的执行单位对于共享资源(硬件资源和软件上的全局变量、静态变量等)的访问很容易导致竞态(raceconditions)。并发执行操作会造成数据库中数据重复等问题,解决办法是加锁。乐观锁(OptimisticLocking)相对悲观锁而言,乐观锁机制采取了更加宽松的加锁机制。悲观锁大多数情况下依靠数据库的锁机制实现,以保证操作最大程度的独占性。但随之而来的就是数据库性能的大量开销,特别是对本文档来自技高网...

【技术保护点】
1.一种基于SpringBoot+JPA的数据库乐观锁实现方法,其特征在于,该方法步骤如下:/nS1、创建lock_table表:在数据库中新建一张lock_table表,lock_table用于存放锁的数据信息;/nS2、操作加锁:将并发事务操作加锁,在数据库中的lock_table表中增加该锁的数据信息;具体如下:/nS201、获取锁:查询lock_table表获取锁的信息,确保对应的进程获取该锁;/nS202、执行事务:对应进程进行继续执行,完成对数据库的事务操作;/nS203、释放锁:事务执行结束后,对应进程更新对应锁的版本号为当前日期,状态更新为未锁定,操作结束。/n

【技术特征摘要】
1.一种基于SpringBoot+JPA的数据库乐观锁实现方法,其特征在于,该方法步骤如下:
S1、创建lock_table表:在数据库中新建一张lock_table表,lock_table用于存放锁的数据信息;
S2、操作加锁:将并发事务操作加锁,在数据库中的lock_table表中增加该锁的数据信息;具体如下:
S201、获取锁:查询lock_table表获取锁的信息,确保对应的进程获取该锁;
S202、执行事务:对应进程进行继续执行,完成对数据库的事务操作;
S203、释放锁:事务执行结束后,对应进程更新对应锁的版本号为当前日期,状态更新为未锁定,操作结束。


2.根据权利要求1所述的基于SpringBoot+JPA的数据库乐观锁实现方法,其特征在于,所述步骤S1中锁的数据信息包括锁名、版本号及状态。


3.根据权利要求1所述的基于SpringBoot+JPA的数据库乐观锁实现方法,其特征在于,所述步骤S201中获取锁的步骤如下:
(1)、查询lock_table中锁的信息,并判断该锁的版本号与当前版本号的大小关系:
若锁A的版本号小于当前日期且状态为未锁定,则执行步骤(2);
(2)、执行update语句更新该锁的状态为锁定,执行成功后返回值为更新的数据条数;
(3)、判断对应进程更新的数据条数是否大于0:
若对应进程更新的数据条数大于0,则说明对应进程获取了该锁;
(4)、对应进程继续执行下一步,未获取到锁的进程终止执行。


4.根据权利要求3所述的基SpringBoot+JPA的数据库乐观锁实现方法,其特征在于,所述步骤(2)中update语句增加@Transactional、@Modifying注解。...

【专利技术属性】
技术研发人员:孙文君吴东生于法栋
申请(专利权)人:浪潮云信息技术有限公司
类型:发明
国别省市:山东;37

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1