java web项目中 大家是怎么做的事务控制呢?

2025-04-28 03:48:46
推荐回答(4个)
回答1:

spring 那种是可以的,一般指定用 @Transaction 指定一个service方法的事务,在service方法里面,只有出现异常(这个异常是可以指定的。),导致这个方法没有正常结束,这个就会数据库回滚。你只有把 Update 和insert写在一个方法里,然后把这个方法加上事务控制,那就可以了。这里面的实现逻辑大概是这样,首先spring获取连接, 我们在service方法里进行数据库的操作,然后方法结束, 如果正常结束,spring提交事务,释放连接。如果异常结束 ,spring 进行回滚,(这个回滚会把这个service方法内所有的修改操作回滚。)释放连接。 大体的流程是这样。至于这些逻辑在数据库层面是如何实现的,我也不知道。

回答2:

用过spring没,用Spring的AOP技术能很好的将事物隔离出来。
Spring声明式事务让我们从复杂的事务处理中得到解脱。
使得我们再也无需要去处理获得连接、关闭连接、事务提交和回滚等这些操作。再也无需要我们在与事务相关的方法中处理大量的try…catch…finally代码。

回答3:

可以,spring的事物控制不是在service下么 你把2个业务dao放到同一个service下 去执行就可以了

回答4:

采用spring的声明式事务方式,如果update和insert操作处于同一个事务中,一旦有一个操作发生异常,spring会自动将数据回滚为执行update和insert操作前的状态。
默认情况下spring仅在发生运行时异常(RuntimeException)的情况下,才进行回滚,不过这是可以修改的。
希望对你有帮助。