摘要:
1 单体synchronized的缺陷 synchronized是JVM内部锁 两者都进入了锁的内部,这个synchronized锁形同虚设,这是由于synchronized是本地锁,只能提供线程级别的同步,每个JVM中都有一把synchronized锁,不能跨 JVM 进行上锁,当一个线程进入被 阅读全文
posted @ 2025-04-15 17:00
kuki'
阅读(60)
评论(0)
推荐(0)
摘要:
ArrayList ArrayList() 此构造函数用于创建一个初始容量足以容纳 10 个元素的空列表。 boolean add(E e) 此方法将指定元素附加到此列表的末尾。 E remove(int index) 此方法删除此列表中指定位置的元素。 阅读全文
posted @ 2025-04-15 16:54
kuki'
阅读(15)
评论(0)
推荐(0)
摘要:
java.lang.string https://docs.oracle.com/javase/8/docs/api/java/lang/String.html#intern-- intern public String intern() 返回字符串对象的规范表示。 Returns a canoni 阅读全文
posted @ 2025-04-15 15:35
kuki'
阅读(26)
评论(0)
推荐(0)
摘要:
https://docs.oracle.com/javase/tutorial/essential/concurrency/locksync.html Another way to create synchronized code is with synchronized statements. U 阅读全文
posted @ 2025-04-15 15:20
kuki'
阅读(13)
评论(0)
推荐(0)
摘要:
https://baomidou.com/guides/wrapper/#示例-3 gt gt 方法是 MyBatis-Plus 中用于构建查询条件的基本方法之一,它用于设置单个字段的大于条件。 使用范围 QueryWrapper LambdaQueryWrapper UpdateWrapper L 阅读全文
posted @ 2025-04-15 14:47
kuki'
阅读(32)
评论(0)
推荐(0)
摘要:
https://baomidou.com/guides/data-interface/#count count // 查询总记录数 int count(); // 根据 Wrapper 条件,查询总记录数 int count(Wrapper<T> queryWrapper); //自3.4.3.2开 阅读全文
posted @ 2025-04-15 14:40
kuki'
阅读(15)
评论(0)
推荐(0)
摘要:
解决一人一单的逻辑 乐观锁 乐观锁需要判断数据是否修改,而当前是判断当前是否存在,所以无法像解决库存超卖一样使用CAS机制, 但是可以使用版本号法,但是版本号法需要新增一个字段, 悲观锁 所以这里为了方便,就直接演示使用悲观锁解决超卖问题 加悲观锁的逻辑 1. 使用Mybatis-Plus判断各种字 阅读全文
posted @ 2025-04-15 13:03
kuki'
阅读(107)
评论(0)
推荐(0)
摘要:
boolean flag = seckillVoucherService.update( new LambdaUpdateWrapper<SeckillVoucher>() .eq(SeckillVoucher::getVoucherId, voucherId) .eq(SeckillVoucher 阅读全文
posted @ 2025-04-15 12:48
kuki'
阅读(51)
评论(0)
推荐(0)
摘要:
涉及的表 tb_voucher:优惠券的基本信息,优惠金额、使用规则等 tb_seckill_voucher:优惠券的库存、开始抢购时间,结束抢购时间。特价优惠券才需要填写这些信息 voucher_id 主键 关联的优惠券... stock 库存 create time 创建时间 begin tim 阅读全文
posted @ 2025-04-15 12:38
kuki'
阅读(84)
评论(0)
推荐(0)
摘要:
save // 插入一条记录(选择字段,策略插入) boolean save(T entity); // 插入(批量) boolean saveBatch(Collection<T> entityList); // 插入(批量) boolean saveBatch(Collection<T> ent 阅读全文
posted @ 2025-04-15 12:38
kuki'
阅读(12)
评论(0)
推荐(0)
摘要:
setSql setSql 方法是 MyBatis-Plus 中用于构建更新操作的高级方法之一,它允许你直接设置更新语句中的 SET 部分 SQL。通过调用 setSql 方法,可以将一个自定义的 SQL 片段作为 SET 子句添加到更新语句中。 使用范围 UpdateWrapper LambdaU 阅读全文
posted @ 2025-04-15 12:27
kuki'
阅读(101)
评论(0)
推荐(0)
摘要:
条件构造器 eq eq 方法是 MyBatis-Plus 中用于构建查询条件的基本方法之一,它用于设置单个字段的相等条件。 使用范围 QueryWrapper LambdaQueryWrapper UpdateWrapper LambdaUpdateWrapper 方法签名 // 设置指定字段的相等 阅读全文
posted @ 2025-04-15 12:25
kuki'
阅读(14)
评论(0)
推荐(0)
摘要:
Lambda Wrapper (LambdaUpdateWrapper): 包装 LambdaUpdateWrapper<User> lambdaUpdateWrapper = new LambdaUpdateWrapper<>(); lambdaUpdateWrapper.set(User::ge 阅读全文
posted @ 2025-04-15 12:21
kuki'
阅读(34)
评论(0)
推荐(0)
摘要:
Service Interface IService 是 MyBatis-Plus 提供的一个通用 Service 层接口,它封装了常见的 CRUD 操作,包括插入、删除、查询和分页等。通过继承 IService 接口,可以快速实现对数据库的基本操作,同时保持代码的简洁性和可维护性。 IServic 阅读全文
posted @ 2025-04-15 12:21
kuki'
阅读(83)
评论(0)
推荐(0)

浙公网安备 33010602011771号