管理数据库中的产品计数
如果这个问题看起来很天真,请原谅我,但我遇到了一个场景,我需要管理电子商务商店数据库中的产品数量。
有一个带有整数变量的 Product 类,该变量表示对站点用户可见的数据库中可用产品的数量。现在,这个类由几个线程访问,或者可以说是电子商务网站的多个用户。每个人都在将产品添加或删除到他的购物车中。productCount
正在使用的 ORM 框架处于休眠状态
示例代码
@Entity
@Table
class Product{
@Column
private int productCount;
public void addProductToCart(){
// decrements the product count by 1 & updates the database
}
public void removeTheProductFromTheCart(){
// increments the product count by 1 & updates the database
}
从代码中可以清楚地看出,我需要对数据库中的产品计数进行并发检查,以防止丢失更新。
此外,如果多个用户尝试在数据库中仅添加单个剩余产品。应将产品添加到哪个用户的购物车?
我对此做了一些研究
我发现的可能方式是
为 Product 创建单例类。这将确保整个应用程序中只有一个产品实例可用。
同步 & 方法。这将只允许一个线程一次更新产品计数和更新数据库。
addProductToCart
removeTheProductFromTheCart
使用数据库并发控制 应用一些数据库事务隔离级别,对 .我正在使用mysql,默认隔离级别是.
productCount
REPEATABLE_READ
处理这个问题的最佳方法是什么?