admin 发布的文章

Java 提供了一个赋值运算符来复制值,但没有提供运算符来复制对象。对象类有一个克隆方法,可用于复制对象的值而没有任何副作用。赋值运算符有一个副作用,即当一个引用被分配给另一个引用时,不会创建一个新对象,并且两个引用都指向同一个对象。这意味着如果我们更改一个对象中的值,那么相同的值也会反映在另一个对象中。clone() 方法处理这个问题。请参见下面的示例。

- 阅读剩余部分 -

新建的Spring Boot项目中,一般都会引用spring-boot-starter或者spring-boot-starter-web,而这两个起步依赖中都已经包含了对于spring-boot-starter-jdbc或spring-boot-starter-data-jpa的依赖。 当我们使用了这两个依赖的时候,框架会自动默认分别注入DataSourceTransactionManager或JpaTransactionManager。 所以我们不需要任何额外配置就可以用@Transactional注解进行事务的使用。

- 阅读剩余部分 -

什么是事务

事务是一个不可分割的工作单位,事务中包括的诸操作要么都做,要么都不做。事务可大可小,在关系数据库中,一个事务可以是一条SQL语句,一组SQL语句或整个程序。

技术背景

RuoYi-vue 前后端分离

举个例子:

订单表和订单详情表进行插入操作。

出现的问题

ps:如何查看失败的原因: 日志

插入订单表成功 但是插入订单详情表失败

解决方案:

做法非常简单,我们只需要在方法或类添加@Transactional注解即可,下面方法位于OrderService.

@Transactional
public int insertOrder(Order order)
{
    // 新增订单信息
    int rows = orderMapper.insertOrder(order);
    
    // 新增用户与订单详情
    insertOrderItem(order);
    return rows;
}

参考

https://blog.csdn.net/u012102536/article/details/123485318
http://doc.ruoyi.vip/ruoyi/document/htsc.html#%E4%BA%8B%E5%8A%A1%E7%AE%A1%E7%90%86