您的位置 首页 > 数码极客

如何修改java源码java反编译修改源码!

更新库存的方法:

方法1:

Mapper代码:

<update id="updateStockVersion"> <![CDATA[ update product set stock = stock - #{1}, where id = #{0} ]]> </update>

Service代码:

public int updateStockVersion(long id, int num) { Product p = (id) ; int res = -1 ; if (p != null) { int stock = p.getStock() ; if (stock <= 0) { return -1 ; } if (stock < num) { return -1; } res = (id, num, p.getVersion()) ; } return res ; }

方法2:

加入版本控制(乐观锁)version

Mapper代码:

<update id="updateStockVersion"> <![CDATA[ update product set stock = stock - #{1}, version = version + 1 where id = #{0} and version = #{2} ]]> </update>

Service代码:

@Transactional(isolation = I) public int updateStockVersion(long id, int num) { Product p = (id) ; int res = -1 ; if (p != null) { int stock = p.getStock() ; if (stock <= 0) { return -1 ; } if (stock < num) { return -1; } res = Version(id, num, p.getVersion()) ; if (res == 0) { try { TimeUnit.MILLISECONDS.sleep(100) ; } catch (InterruptedException e) { e.printStackTrace(); } return updateStockVersion(id, num) ; } } return res ; }

这里简单加入了重试功能(无限次,这里不考虑性能)。

方法1:很普通的更新操作,有没有问题?

方法2:加了乐观锁重试,有没有问题?


欢迎大家写下答案!!!

Restful API设计规范

Java代码开发规范

SpringBoot多数据源配置详解

SpringCloud Hystrix实现资源隔离应用


责任编辑: 鲁达

1.内容基于多重复合算法人工智能语言模型创作,旨在以深度学习研究为目的传播信息知识,内容观点与本网站无关,反馈举报请
2.仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证;
3.本站属于非营利性站点无毒无广告,请读者放心使用!

“如何修改java源码,java反编译修改源码,如何看java源码,如何阅读java源码,如何修改apk源码”边界阅读