1、单机版本的解决方案
<select id="findMaxId" resultType="Long">
select max(id)+1 from bill
</select>

boolean i = false;
try{
Object maxId = billService.findMaxId();
//锁住本对象
synchronized(maxId){
StringBuffer br = new StringBuffer();
br.append(bill.getUserId());
br.append(RedisConstant.INCOME_KEY);
String key = br.toString();
QueryWrapper userQueryWrapper = new QueryWrapper();
userQueryWrapper.eq("id", bill.getUserId());
本文介绍了一种在单机环境下实现业务ID自增生成的方法。通过使用synchronized关键字锁定对象,并结合数据库查询最大ID值的方式确保了ID的唯一性和递增性。此方案适用于不需要考虑分布式场景的应用。

850

被折叠的 条评论
为什么被折叠?



